现在的位置: 首页 > 综合 > 正文

srand()和rand()

2012年06月21日 ⁄ 综合 ⁄ 共 401字 ⁄ 字号 评论关闭
先从随机数的原理谈起.
计算机的随机数都是由伪随机数,即是由小M多项式序列生成.产生每个小序列都有一个初始值,即随机种子.
srand()产生随机种子.
rand()产生随机数
要保证计算机产生不相同的随机数,应保证它们的随机种子是不一样的.

srand( (unsigned)time( NULL ) );

就是以时间做为随机种子,因为每次你运行的时间总是不一样的.

补充一点是小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535,即你取得65535个随机数后它们又重复出现了.

int nRand;
srand( (unsigned)time( NULL ) );

for(int i=0;i<65538;i++)
{
nRand=rand();
if(i==1||i==65536)
printf("%d\r\n",nRand);
}

更多内容可以参见 :http://tag.csdn.net/tag/srand/

抱歉!评论已关闭.