


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一课资料网/rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了 srand()函数,它的原形是void srand( int a). 初始化随机产生器既rand()函数的初始值,即使把种子的值改成a; 从这你可以看到通过sand()函数,我们是可以产生可以预见的随机序列,那我们如何才能产生不可预见的随机序列呢?我们可能常常需要这样的随机序列,是吧。利用srand(unsign)(time(NULL)是一种方法,因为每一次运行程序的时间是不同的. 下面讲一讲在C语言里所提供的随机数发生器的用法。现在的C编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数。它们就是rand()和srand()函数。这二个函数的工作过程如下:1) 首先给srand()提供一个种子,它是一个unsigned int类型,其取值范围从065535;2) 然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间)3) 根据需要多次调用rand(),从而不间断地得到新的随机数;4) 无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。以下是一个产生随机数的例子:需要首先使用随机数“种子”初始化,srand函数:i nclude i nclude i nclude /使用当前时钟做种子void main( void )int i;srand( (unsigned)time( NULL ) );/初始化随机数/* 打印10个随机数. */for( i = 0; i 10;i+ )printf( %dn, rand() );rand(产生随机数) 相关函数 srand 表头文件 #include 定义函数 int rand(void) 函数说明 rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。关于随机数种子请参考srand()。 返回值 返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,其值为2147483647。 范例 /* 产生介于1 到10 间的随机数值,此范例未设随机数种子,完整的随机数产生请参考 srand()*/ #include main() int i,j; for(i=0;i10;i+) j=1+(int)(10.0*rand()/(RAND_MAX+1.0); printf(%d ,j); 执行 9 4 8 8 10 2 4 8 3 6 9 4 8 8 10 2 4 8 3 6 srand(设置随机数种子) 相关函数 rand 表头文件 #include 定义函数 void srand (unsigned int seed); 函数说明 srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用geypid()或time(0)的返回值来当做seed。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。 返回值 范例 /* 产生介于1 到10 间的随机数值,此范例与执行结果可与rand()参照*/ #include #include main() int i,j; srand(int)time(0); for(i=0;i10;i+) j=1+(int)(10.0*rand()/(RAND_MAX+1.0); printf( %d ,j); 执行 5 8 8 8 10 2 10 8 9 9 2 9 7 4 10 3 2 10 8 7一课资料网-学习资料下载网站/一课资料网提供大中小学教学课
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六年级上册品德与社会教学设计-7《小商标大世界》第1课时∣粤教版
- 创业旧书回收计划书
- 第3节 数据图表及其分析教学设计-2025-2026学年初中信息技术苏科版2018七年级全一册-苏科版2018
- 2025医学炎症性肠病诊治考试题目及答案
- 殡葬知识普及课件
- 2025医学强迫症防治指南考试题目及答案
- 车工实训课件
- 基于TC4涂层的热熔性能研究对Q235钢的改性效果分析
- 前鼻音后鼻音教学课件
- 社区志愿者主体性培育机制研究
- 2025 年小升初吕梁市初一新生分班考试语文试卷(带答案解析)-(部编版)
- (2025)公务员考试时事政治题库及完整答案详解(历年真题)
- 2025秋全体教师大会上,德育副校长讲话:德为根,安为本,心为灯,家为桥-这场开学讲话,句句都是育人的方向
- 2025年政工师考试试题及参考答案
- 2025年检验检测人员理论考试试题及答案
- GB/T 18983-2017淬火-回火弹簧钢丝
- GB/T 15972.1-1998光纤总规范第1部分:总则
- 《夯实法治基石》设计 省赛一等奖
- 中国老年人功能性消化不良诊治共识解读专家版
- 工伤保险风险控制及操作指引课件
- 膜性肾病治疗指南课件
评论
0/150
提交评论