关于产生随机数的问题

hwylind 2002-05-06 10:41:55
int code[10];
for(int i=0;i<10;i++)
{
srand(20);
code[i]=rand();
}


会不会产生10个相同的随机数?
...全文
38 28 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
knl 2002-05-09
  • 打赏
  • 举报
回复
不好意思没有看清楚,打错了。

聪明笨伯说得对!!!
我看他是从dos 爬过来的程序员!!!!
非常同意他的观点,我的qq是94425475希望我能把他加入好友.
knl 2002-05-09
  • 打赏
  • 举报
回复
聪明的笨笨说得对!!!
我看他是从dos 爬过来的程序员!!!!
非常同意他的观点,我的qq是94425475希望我能把他加入好友.
星辰游侠 2002-05-09
  • 打赏
  • 举报
回复
学习
Richuen22 2002-05-09
  • 打赏
  • 举报
回复
还不加分?
Richuen22 2002-05-08
  • 打赏
  • 举报
回复
#include <stdlib.h>
#include <time.h>

srand( (unsigned)time( NULL ) );

float code[10];
for(int i=0;i<10;i++)
{
code[i] = (float)rand()/RAND_MAX;
}
winne_ll 2002-05-07
  • 打赏
  • 举报
回复
同意saucer(思归) 的观点。
我不是大明 2002-05-07
  • 打赏
  • 举报
回复
randomize() 是Basic的函数,C里面没有的!也就是ssrand()!
就这样用不就行了!
写在你在运行的函数前面OK!
srand( (unsigned)time( NULL ) );
jerrytse 2002-05-07
  • 打赏
  • 举报
回复
当然会产生10个相同的随机数,说不会的人,请先去恶补一下C语言!
计算机不能够产生真正的随机数,如果能够,人工智能就不是我们现在见到的样子了。
所谓的随机数,其实都是伪随机数。系统里有一个伪随机序列,srand()就是负责在这个序列里头选择开始的位置,选好以后,每次调用rand()就把当前位置的数输出,然后把位置后移。但是像楼顶的程序那样,每次rand()前都用srand(20)选定一个固定的伪随机数序列的开始取数位置,就会产生一样的数了。
举个例,在系统里,可能伪随机序列如下:
1,70,343,2342,64,0,24,67,98,23,56,76,765,1234,654,.....
如果调用srand(0),那么第一次调用rand()得到的就是1,然后就是70
如果调用srand(5),那么第一次调用rand()得到的就是0,然后就是24

如果每次调用rand()前都调用srand(5),那么每次调用rand()都将是0了。

最后建议yhr3711看好书才说话
bljbljbljblj 2002-05-07
  • 打赏
  • 举报
回复

srand( (unsigned)time( NULL ) );
就不会了
yhr3711 2002-05-07
  • 打赏
  • 举报
回复
不会产生相同的十个数你知不知道rang()是怎么回事吗
Eric_yu 2002-05-07
  • 打赏
  • 举报
回复
应该把strand(20)放在for外面
Richuen22 2002-05-07
  • 打赏
  • 举报
回复
CString str;
for(int i=0;i<10;i++)
{
str.Format("%.2f",(float)rand()/RAND_MAX);
pDC->TextOut(100,100+20*i,str);
}
knl 2002-05-07
  • 打赏
  • 举报
回复
同意十个数一样的说法!
楼上的大哥说得对!!
我曾经调试过,遇到过这种情况。

我追踪随几的函数代码这样的代码,发现实在不敢恭维。
哈哈!
Richuen22 2002-05-07
  • 打赏
  • 举报
回复
同意MSDN,同意 saucer(思归)
hwylind 2002-05-07
  • 打赏
  • 举报
回复
如何用srand()和rand()产生若干0-1之间的随机数呢?
zhakewei 2002-05-07
  • 打赏
  • 举报
回复
随机数,也有一定的算法,有可能把
Richuen22 2002-05-07
  • 打赏
  • 举报
回复
会产生10个相同的随机数,我想原因是
srand(20)每次都会将随机因子初始化而定位一定的组会,这就像
strand(xx),若xx是不变值每次启动的一系列随机数都是一样的,你每一次循环都初始化一次的原由吧。
寂寞漂泊 2002-05-06
  • 打赏
  • 举报
回复
是由于srand(20)在for循环内的缘故
hwylind 2002-05-06
  • 打赏
  • 举报
回复
randomize();
编译是经常会提示没定义,它是c++的库里的函数吗?
tj98zyz 2002-05-06
  • 打赏
  • 举报
回复
会的,一定是十个相同的数值,原因就是你在每次rand()之前都srand一次
你将srand置于for外面就好了
加载更多回复(8)

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧