C语言中产生随机数的方法.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言中产生随机数的方法

C语言中产生随机数的方法 引例:产生10个[100-200]区间内的随机整数。 #include #include //rand函数的头文件 #include //时间函数的头文件 int main int i; //循环变量 srand unsigned time NULL ; //产生随机数的起始数据(以时间为种子) for i 0; i 10; i++ //printf "%d\n", rand ; //产生[0,0x7fff 即[0,32767)以内的随机整数 //printf "%d\n", rand %100 ; //产生0-99的随机整数 printf "%d\n", rand % 200-100+1 + 100 ; //产生[100,200]内的随机整数 return 0; 在C语言中产生随机数需要以下几个函数的配合使用。 (1)rand函数——产生伪随机数 原型: int rand void 头文件: stdlib.h 功能:产生从0到RAND_MAX之间的随机数。RAND_MAX的值通常是0x7fff(十六进制数7FFF,也就是十进制数32767)。 例: #include #include int main int k; k rand ; printf "%d\n", k ; return 0; 编译运行,发现每次运行程序产生的随机数都是一样的。 计算机中产生随机数,实际是采用一个固定的数作为“种子”,在一个给定的复杂算法中计算结果,所以叫“伪随机数”。 C语言中由于采用固定的序列作为种子,所以每次执行所取的是同一个数。 为上面的例子增加一个循环结构: #include #include int main int k,i; for i 0;i 10;i++ k rand ; printf "%d\n", k ; return 0; 运行时会产生10个互不相同的随机数。但再次运行,产生的还是这10个数。 为了产生不同的随机数列,需要srand函数来改变随机数种子。 (2)srand 函数 原型:void srand unsigned seed 头文件:stdlib.h 功能:由随机数种子seed进行运算产生随机数的起始数据。与rand函数配合使用,可产生不同的随机数列。 例: #include #include #include int main int i; srand unsigned time NULL ; //函数time取得时间,其头文件是time.h for i 0;i 10;i++ printf "%d\n", rand ; return 0; 程序运行时,每次产生10个不同的随机数。因为采用时间作为种子,而时间一直在变化,所以就产生了“随机”的随机数了。 在实际应用中,常需要产生指定范围的随机整数。可采用下面给出的表达式。 (3)产生指定区间的随机数 采用表达式 rand % Y-X+1 +X 可以产生[X,Y]区间内随机整数。 例如: rand %100 //产生0~99间的随机数 rand % 200-100+1 + 100 //产生100-200间的随机数

文档评论(0)

kakaxi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档