欢迎来到天天文库
浏览记录
ID:42735814
大小:40.00 KB
页数:3页
时间:2019-09-21
《C++随机数产生器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、随机数产生器在标准库中,提供了rand函数(函数原型见),用来产生0到RAND_MAX之间的整数(这是头文件中定义的符号常量)。RAND_MAX的值至少应为32767,也就是两个字节(16位)所能表示的最大整数值。使用:inti=rand();rand函数产生的数值范围可能与特定应用中的数值范围不同。例如,模拟掷硬币的程序只要0(正面)和1(反面),模拟投骰子的程序只要1到6之间的随机整数。可以使用求模运算符(%)和rand函数解决:rand()%2;//产生0和1整数rand()%6;//产生0到5之间的整数称为比例缩放。数字2和数字6称为比例因
2、子,然后将所产生的数值范围加1,即可得到所要结果。总结:1)由rand函数直接产生的值总是取值为:0≤rand()≤RAND_MAX2)用一个语句模拟投骰子如下:face=1+rand()%6;总是对变量face指定1≤face≤6的整数(随机)。3)将2)一般化:n=a+rand()%b;其中:a是位移值(等于所要的连续数范围的开始值),b是比例因子(即由连续整数构成的该范围的宽度。例:#include#includevoidmain(){for(inti=1;i<=20;i++){cout<<(1+rand()%6)<<'t';if(
3、i%5==0)cout<)。voidsrand(unsignedintseed);为rand函数提供随机种子(参数seed便是种子),就可以在每次执行程序时产生不同的随机数系列。例
4、:#include#includeusingnamespacestd;intmain(){unsignedseed;cout<<”Enterseed:”;cin>>seed;srand(seed);for(inti=1;i<=10;i++){cout<<(1+rand()%6)<<'t';if(i%5==0)cout<5、动取得种子值。time函数返回当前“日历时间”的秒数,将这个值转换为无符号正数值,作为随机数产生器的种子。time函数的函数原型在(c++标准ctime)中。例:#include#includeusingnamespacestd;intmain(){srand(time(0));for(inti=1;i<=10;i++){cout<<(1+rand()%6)<<'t';if(i%5==0)cout<6、所用时间*/#include#include#include#includeusingnamespacestd;voidselect_sort(intarray[],intn);intmain(){inti;char*t1,*t2;inta[100000];time_ttt1,tt2;srand(time(0));//使计算机通过时钟值自动取得种子值,time(0)或time(NULL)均可//tt1=time(0);t1=ctime(&tt1);//ctime完成将以秒计的时间转换为日期时间字符串for(i=0;i7、<100000;i++){a[i]=rand()%100+100;cout<
5、动取得种子值。time函数返回当前“日历时间”的秒数,将这个值转换为无符号正数值,作为随机数产生器的种子。time函数的函数原型在(c++标准ctime)中。例:#include#includeusingnamespacestd;intmain(){srand(time(0));for(inti=1;i<=10;i++){cout<<(1+rand()%6)<<'t';if(i%5==0)cout<6、所用时间*/#include#include#include#includeusingnamespacestd;voidselect_sort(intarray[],intn);intmain(){inti;char*t1,*t2;inta[100000];time_ttt1,tt2;srand(time(0));//使计算机通过时钟值自动取得种子值,time(0)或time(NULL)均可//tt1=time(0);t1=ctime(&tt1);//ctime完成将以秒计的时间转换为日期时间字符串for(i=0;i7、<100000;i++){a[i]=rand()%100+100;cout<
6、所用时间*/#include#include#include#includeusingnamespacestd;voidselect_sort(intarray[],intn);intmain(){inti;char*t1,*t2;inta[100000];time_ttt1,tt2;srand(time(0));//使计算机通过时钟值自动取得种子值,time(0)或time(NULL)均可//tt1=time(0);t1=ctime(&tt1);//ctime完成将以秒计的时间转换为日期时间字符串for(i=0;i
7、<100000;i++){a[i]=rand()%100+100;cout<
此文档下载收益归作者所有