全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
随机数产生器在标准库中,提供了rand函数(函数原型见),用来产生0到RAND_MAX之间的整数(这是头文件中定义的符号常量)。RAND_MAX的值至少应为32767,也就是两个字节(16位)所能表示的最大整数值。使用: int i=rand();rand函数产生的数值范围可能与特定应用中的数值范围不同。例如,模拟掷硬币的程序只要0(正面)和1(反面),模拟投骰子的程序只要1到6之间的随机整数。可以使用求模运算符(%)和rand函数解决: rand()%2; /产生0和1整数rand()%6; /产生0到5之间的整数 称为比例缩放。数字2和数字6称为比例因子,然后将所产生的数值范围加1,即可得到所要结果。总结:1) 由rand函数直接产生的值总是取值为: 0rand( )RAND_MAX2) 用一个语句模拟投骰子如下: face=1+rand( ) %6;总是对变量face指定1face6的整数(随机)。3) 将2)一般化: n=a+rand( ) % b; 其中:a是位移值(等于所要的连续数范围的开始值),b是比例因子(即由连续整数构成的该范围的宽度。例:#include #include void main() for(int i=1;i=20;i+) cout(1+rand()%6)t; if(i%5=0)coutendl; 输出结果:6 6 5 5 65 1 1 5 36 6 2 4 26 2 3 4 1注:系统函数int rand()的功能是产生一个伪随机数,伪随机数并不是真正随机的。该函数自己不能产生真正的随机数。如果在程序中连续调用rand, 期望由此产生一个随机数序列,则会发现每次运行该程序时产生的序列都是相同的,所以称为伪随机数序列。通常希望程序每次执行时产生不同的随机数系列,可以用标准库函数srand完成(函数原型见)。void srand(unsigned int seed);为rand函数提供随机种子(参数seed便是种子),就可以在每次执行程序时产生不同的随机数系列。例:#include #include using namespace std;int main() unsigned seed; coutseed; srand(seed); for(int i=1;i=10;i+) cout(1+rand()%6)t; if(i%5=0)coutendl; return 0;输出结果:Enter seed: 67 6 1 4 6 2 1 6 1 6 4Enter seed: 34 6 4 5 4 5 3 3 1 5 1如果不想每次输入种子值而随机化,则可用如下语句: srand( time(0) );使用计算机通过时钟值自动取得种子值。time函数返回当前“日历时间”的秒数,将这个值转换为无符号正数值,作为随机数产生器的种子。time函数的函数原型在(c+标准ctime)中。例:#include #include using namespace std;int main() srand(time(0); for(int i=1;i=10;i+) cout(1+rand()%6)t; if(i%5=0)coutendl; return 0;/*本程序完成1)一个产生三位整数的随机数 2)使用选择法排序对数组中的元素按从小到大排序 3)计算排序所用时间*/#include #include #include #includeusing namespace std;void select_sort(int array,int n);int main() int i; char *t1,*t2; int a100000; time_t tt1,tt2; srand(time(0); /使计算机通过时钟值自动取得种子值, time(0)或time(NULL)均可 /tt1=time(0);t1=ctime(&tt1); /ctime完成将以秒计的时间转换为日期时间字符串 for(i=0;i100000;i+) ai=rand()%100+100;coutait; tt1=time(NULL); /排序开始前计时 select_sort(a,100000); tt2=time(NULL); /排序结束计时/t2=ctime(&tt2); double d=difftime(tt2,tt1); /时差 couttt2ttt1tdendl; return 0;void select_sort(int array,int n) int i,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 研学基地课程研发设计师岗位招聘考试试卷及答案
- 烟草设备点检技师考试试卷及答案
- 2025年黑龙江省宁安市高二生物下册期末考试模拟卷含答案(模拟题)
- 2026年云南省楚雄市高二生物下册期末考试检测卷(综合卷)附答案
- 2026年河南省登封市高二生物下册期末考试测试卷附完整答案【网校专用】
- 2026年山东省莱西市高二生物下册期末考试考试卷附完整答案【有一套】
- 2026年河北省遵化市高二生物下册期末考试检测卷汇编附答案
- 2026年江西省樟树市高二生物下册期末考试考试卷及答案【典优】
- 2025年吉林省集安市高二生物下册期末考试模拟卷附参考答案(精练)
- 2026年海南省五指山市高二生物下册期末考试模拟卷含答案【B卷】
- 复旦大学2026年强基计划招生面试模拟试题及答案解析
- 2026年高考英语全国二卷试题(附答案)
- 2026年2026年安全生产月安全知识竞赛题库(含答案)试卷及答案
- 沈阳地铁站务员招聘考试试题
- 2026年国开(中央电大)《基础会计》期末考试试题及答案
- 学科竞赛备赛指导与培训方案
- 2026年医用敷贴行业分析报告及未来发展趋势报告
- 腹膜恶性肿瘤护理查房
- 2026年新版七年级下册道德与法治期末素养测试卷(含答案)
- 2026年临床工程技术高分题库含完整答案详解(各地真题)
- 2025年湖南省郴州市初二地生会考真题试卷+答案
评论
0/150
提交评论