Qt产生随机数
所谓的“伪随机数”指的并不是假的随机数,这里的“伪”是有规律的意思。其实绝对的随机数只是一种理想状态的随机数,计算机智能生成相对的随机数,即伪随机数。计算机生成的伪随机数既是随机的又是有规律的(一部分遵守规律,一部分不遵守任何规律)。
C++
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
库中
提供连个帮助生成伪随机数的函数: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<
QTime t;
T=QTime::currentTime();
Qsrand(t.msec()+t.second()*1000);
Int n=qrand();
方法 2:
Qsrand(time(NULL));
Int n=qrand();
这两句不一定要连着,前边初始化种子可以在程序开始的时候就开始。
如果两句连载一起啊,并且又同时出现在for循环中,就容易产生相同的随机数。