C语言中rand函数的原理问题,高手快来~

[复制链接]
查看11 | 回复1 | 2012-7-26 11:00:17 | 显示全部楼层 |阅读模式
因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。rand()产生的是假随机数字,每次执行时是相同的。。用srand函数可以产生随机数 但是需要一个种子。这个种子会对应一个随机数。为了防止随机数每次重复常常使用系统时间来初始化,使用time函数来获得时间,因为时间一直在变 所以种子就会变 产生的随机数也就是真正的随机数了! 在用rand函数之前加上这个语句srand((unsigned) tim...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行