Qt产生随机数

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Qt产生随机数

所谓的“伪随机数”指的并不是假的随机数,这里的“伪”是有规律的意思。其实绝对的随机数只是一种理想状态的随机数,计算机智能生成相对的随机数,即伪随机数。计算机生成的伪随机数既是随机的又是有规律的(一部分遵守规律,一部分不遵守任何规律)。

C++标准库中提供连个帮助生成伪随机数的函数:rand()和srand()。

Int rand(void)从srand()中指定seed开始,返回一个范围介于[seed,rand_max)的随机数。

Void srand(unsigned seed)的参数seed是rand()的随机种子,即用来初始化rand()的起始值。系统在调用rand()之前都会自动调用srand(),如果用户在rand()之前曾调用过srand()给参数seed()指定了一个值,那么rand()就会将seed的值作为产生伪随机数的初始值;而如果用户在rand()前没有调用过srand(),那么rand()就会自动调用srand(1),即系统默认将1作为伪随机数的初始值。

由上述可得知,如果希望rand()在每次程序运行时产生的值都不一样,必须给srand(seed)中的参数seed指定一个变值,这个变值必须在每次程序运行时都不一样(比如到目前为止流失的时间);如果我们给seed指定的是一个定值,那么每次程序运行的时候,rand()产生的随机数都会一样,只不过这个值是[seed,rand_max)范围中的一个随机取得的值。

举例说明,产生0~6之间的随机数(不包括6):

程序1:

For(int i=0;i<10;i++)

{

Ran_num=rand()%6;

Cout<

}

程序2(指定seed为1)

Srand(6);

For(int i=0;i<10;i++)

{

Ran_num=rand()%6;

Cout<

}

QT中的产生随机数的方法

方法1:

#include

QTime t;

T=QTime::currentTime();

Qsrand(t.msec()+t.second()*1000);

Int n=qrand();

方法2:

Qsrand(time(NULL));

Int n=qrand();

这两句不一定要连着,前边初始化种子可以在程序开始的时候就开始。

如果两句连载一起啊,并且又同时出现在for循环中,就容易产生相同的随机数。

相关文档
最新文档