随机数种子 srand 函数
头文件
:
#include <stdlib.h>
函数原型:
void srand(unsigned int seed);
描述
:
将它的参数 seed
设置为
rand()
返回的伪随机整数序列的种子。通过使用相同的种子值调用 srand()
,那么生成这些随机数序列是可重复的
.
备注
:
1.
计算机并不能产生真正的随机数,而是已经编写好的一些无规则排列的数字存储在电脑里,把这些数字划分为若干相等的 N
份,并为每份加上一个编号用
srand()
函数获取这个编号,然后 rand()
就按顺序获取这些数字,
当
srand()
的参数值固定的时
候,
rand()
获得的数也是固定的,所以一般
srand
的参数用
time(NULL)
,因为系统
的时间一直在变,所以
rand()
获得的数,也就一直在变,相当于是随机数了
。只要用户或第三方不设置随机种子,那么在默认情况下随机种子来自系统时钟。如果想在一个程序中生成随机数序列,需要至多在生成随机数之前设置一次随机种子。
2.
只需在主程序开始处调用
srand((unsigned)time(NULL));
后面直接用
rand
就可以了。不要在 for
等循环放置
srand((unsigned)time(NULL));
随机数生成 rand 函数
头文件
:
#include <stdlib.h>
函数原型:
int rand(void);
描述
:
返回一个范围在 0
到
RAND_MAX
之间的伪随机数,
RAND_MAX
是一个常量,它的默认值在不同的实现中会有所不同,但是值至少是 32767
。
返回值
:
返回一个随机数
备注
:
无
使用示例
:
int main()
{
printf("%d\n",getpagesize());
srand(time(NULL));
for(int i=0;i<100;i++)
printf("%d\n",rand());
return 0;
}