srand()在C++中怎么用?
发布网友
发布时间:2022-06-28 21:11
我来回答
共4个回答
热心网友
时间:2023-10-10 15:49
srand()
功能:初始化随机数发生器
用法: void srand(unsigned int seed)
所在头文件: stdlib.h
srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。
计算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机种子。(注意: 小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535,当你取得65535个随机数后它们又重复出现了。)
我们知道rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,是根据一个数(我们可以称它为种子)为基准以某个递推公式推算出来的一系列数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统。
热心网友
时间:2023-10-10 15:50
srand()是产生一个随机数种子,也就是说rand()输出要依靠你srand()里面的parameter,伪随机数还不是用一种算法来产生的撒!不是真正的随机数,所以说srand()里面的参数的数值一样,rand()的返回值就不会变!
example one:
int wRand;
srand(1);//只要里面的参数不变,wRand就不会变
wRand = rand();
example two:
int wRand;
unsigned int i;
srand(1);//只要里面的参数不变,wRand就不会变
for (i = 1; i != 0; i <<= 1)
{
wRand = rand();//每次返回的值就不会一样
}
srand()一下后,rand()返回值都是不一样的,但是同一个次序下的rand()返回值都一样!
热心网友
时间:2023-10-10 15:50
随机种子,要给一个范围。让随机种子在这个范围内产生随机数。
热心网友
时间:2023-10-10 15:51
srand((int)time(0));
int n = rand()%100 ; n就是0~99的随机数。