随机数发生器srand()和rand()

来源:互联网 发布:技术标制作软件下载 编辑:程序博客网 时间:2024/05/29 08:33

 在C语言里面,两个函数包含在“stdlib.h”头文件里面,在C++里面,标准库“cstdlib”(被包含于“iostream”中).
srand函数是随机数发生器的初始化函数。
原型:void srand(unsigned seed);
rand函数用来产生随机数,当然是伪随机数。
原型:int rand(void)
seed的作用:srand函数的作用是根据参数seed,设置一个随机起始点,而rand函数根据这个起始点,产生随机数序列。默认的随机种子为1。如果随机种子一样,rand函数所产生的随机序列也一样。
因此,为使每次程序运行都能产生不同的随机序列,每次都应产生一个不同的种子参数。
说明:
因为rand的内部实现是用线性同余法做的,它不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。rand()产生的是假随机数字,每次执行时是相同的。若要不同,以不同的值来初始化它.初始化的函数就是srand()。
返回值:
返回0至RAND_MAX之间的随机整数值,RAND_MAX的范围最少是在32767之间(int),即双字节(16位数)。若用unsigned int 双字节是65535,四字节是4294967295的整数范围。
0~RAND_MAX每个数字被选中的机率是相同的。

0 0