• 5306阅读
  • 4回复

随机函数疑问 [复制链接]

上一主题 下一主题
离线rycstar
 
只看楼主 正序阅读 楼主  发表于: 2010-01-16

int  j = qrand();
为什么我每次运行程序第一次random  debug出来的j都是41啊,然后我试验了几遍;每一次运行随机出来的值都是一样的,都是
41 ---16812 ---。。。。
离线john123
只看该作者 4楼 发表于: 2010-01-16
qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));


引用楼主rycstar于2010-01-16 11:14发表的 随机函数疑问 :
int  j = qrand();
为什么我每次运行程序第一次random  debug出来的j都是41啊,然后我试验了几遍;每一次运行随机出来的值都是一样的,都是
41 ---16812 ---。。。。
离线rycstar
只看该作者 3楼 发表于: 2010-01-16
谢谢!!
离线benbenmajia

只看该作者 2楼 发表于: 2010-01-16
QT中rand的用法和C++中是一样的
安然.....
离线benbenmajia

只看该作者 1楼 发表于: 2010-01-16
随机数你这样用的时候每次随即出来的数字确实是一样的,你应该定一个随机数种子,这样才行


rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。rand()产生的是假随机数字,每次执行时是相同的。若要不同,以不同的值来初始化它.初始化的函数就是srand()。

具体用法google一下
安然.....
快速回复
限100 字节
 
上一个 下一个