欢迎来到天天文库
浏览记录
ID:37896654
大小:16.02 KB
页数:3页
时间:2019-06-02
《rand、srand函数用法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、rand、srand函数用法写程序2010-02-2816:18:34阅读358评论0 字号:大中小 订阅srand(设置随机数种子) 相关函数 rand 表头文件 #include 定义函数 voidsrand(unsignedintseed); 函数说明 srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用geypid()或time(0)的返回值来当做seed。如果每次see
2、d都设相同值,rand()所产生的随机数值每次就会一样。 返回值 范例 #include #include main() { inti,j; srand((int)time(0)); for(i=0;i<10;i++) { j=1+(int)(10.0*rand()/(RAND_MAX+1.0)); printf("%d",j);
3、 } } 执行 588810210899 297410321087rand(产生随机数)相关函数srand表头文件#include定义函数intrand(void)函数说明rand()会返回一随机数值,范围在0至RAND_MAX间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。关于随机数种子请参考srand()。返回值返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h
4、,其值为2147483647。范例#includemain(){inti,j;for(i=0;i<10;i++){j=1+(int)(10.0*rand()/(RAND_MAX+1.0));printf("%d",j);}}执行94881024836948810248361、rand返回0-RAND_MAX之间均匀分布的伪随机整数。RAND_MAX必须至少为32767。rand()函数不接受参数,默认以1为种子(即起始值)。随机数生成器总是以相同的种子开始,所以形成的伪随机数列也相同,失去了随机意义。(但这样便于程序调试)2、C++中另
5、一函数srand(),可以指定不同的数(无符号整数变元)为种子。但是如果种子相同,伪随机数列也相同。一个办法是让用户输入种子,但是仍然不理想。3、比较理想的是用变化的数,比如时间来作为随机数生成器的种子。time的值每时每刻都不同。所以种子不同,所以,产生的随机数也不同。//C++随机函数(VCprogram)#include#include#includeusingnamespacestd;#defineMAX100intmain(intargc,char*argv[]){srand((unsign
6、ed)time(NULL));//srand()函数产生一个以当前时间开始的随机种子for(inti=0;i<10;i++)cout<7、 到现在所持续的秒数,然后将time_t型数据转化为(unsigned)型在传给srand函数,即: srand((unsigned)time(&t)); 还有一个经常用法,不需要定义time_t型t变量,即: srand((unsigned)time(NULL)); 直接传入一个空指针,因为你的程序中往往并不需要经过参数获得的t数据。 srand((int)getpid()); 使用程序的ID(getpid())来作为初始化种子,在同一个程序中这个种子是固定的 随机输出十个0-100之间的整数
7、 到现在所持续的秒数,然后将time_t型数据转化为(unsigned)型在传给srand函数,即: srand((unsigned)time(&t)); 还有一个经常用法,不需要定义time_t型t变量,即: srand((unsigned)time(NULL)); 直接传入一个空指针,因为你的程序中往往并不需要经过参数获得的t数据。 srand((int)getpid()); 使用程序的ID(getpid())来作为初始化种子,在同一个程序中这个种子是固定的 随机输出十个0-100之间的整数
此文档下载收益归作者所有