社区
C语言
帖子详情
关于rand函数的实现原理。
c_word
2002-06-15 10:12:01
c语言中的rand函数的实现原理是什么?我用它编出的程序好象有点规律。到底是怎么回事?
...全文
970
8
打赏
收藏
关于rand函数的实现原理。
c语言中的rand函数的实现原理是什么?我用它编出的程序好象有点规律。到底是怎么回事?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xiaobird1
2002-06-17
打赏
举报
回复
用rand();之前,
加一句randomize();后,你在找规律看看
Laudon
2002-06-17
打赏
举报
回复
不是
c_word
2002-06-16
打赏
举报
回复
srand函数的作用就是seed=y+t的?
Laudon
2002-06-16
打赏
举报
回复
产生整数rand的原理是:
y=ax+b(mod n)其中,n一般是一个很大的素数,几万。
a也是大素数。而且a,b,n都是常数。所以rand的产生决定于x,
他被称为seed。
每一个seed都是上一次产生的y的函数。这样,如果直接取seed=y的话,
虽然产生的rand之间相关性甚小,但只要知道某个y,就能推知以后的rand。
为避免这种情况,一般取seed为y和当时计算机的时间的函数,如seed=y+t
c_word
2002-06-15
打赏
举报
回复
srand函数的形参是函数的初始值?
晨星
2002-06-15
打赏
举报
回复
关于“随机数”的产生有许多算法,但无论如何,都不可能产生真正的随机数,因为电脑程序是个确定状态转换机,一种输入必定产生一种确定的输出。
但要实现“不可预知”还是可以做到的,只需有“不可预知”的输入或者初始化就可以了,像系统时间,网络实时带宽,Cpu使用率等等都可以作为“不可预知”的量来初始化随机函数。
晨星
2002-06-15
打赏
举报
回复
你需要在使用前初始化随机种子:
srand(time(NULL));
当然,这样还是伪随机的,但至少就不会被你轻易看出有规律了。
ray_gao
2002-06-15
打赏
举报
回复
当然了,如果用rand,多次循环后结果是一样的,应该设定一个随机种子,然后用rand~!
rand
函数
的
实现原理
rand
函数
的
实现原理
rand
函数
产生的是伪随机数,也就是说它不是一个真实的随机数。那么伪随机数是怎么实现的呢?原理大概如下:如果约定:a1=f(seed),an+1=f(an)a_1 = f(seed), a_{n+1} = f(a_n)那你可以行到一个序列...
rand
函数
的使用及
实现原理
最近很想知道c语言中
rand
om是怎么实现的,查了一些资料,总结了一下: 参考:http://topic.csdn.net/u/20091124/14/2598eca6-b66a-47d6-9603-61f669fe0334.html http://jonny131.iteye.com/blog/188829以及维基...
C语言之中
rand
()
函数
是如何实现的
需要注意的是,
rand
()
函数
是一个伪随机数生成
函数
,它生成的随机数并非真正的随机数,而是在数学上看起来是随机的数列。由于随机数生成器的初始种子相同,因此每次程序运行时生成的随机数序列都是相同的。
rand
()
函数
...
rand
()
函数
一、
rand
()
函数
和s
rand
()
函数
的
实现原理
二、
rand
()
函数
和s
rand
()
函数
的使用方法 一、
rand
()
函数
和s
rand
()
函数
的
实现原理
1.1 源代码 使用这两个
函数
是需要添加<stdlib.h>的头文件,那么在该头文件内部...
linux
rand
()
函数
,C語言
rand
函数
进阶探讨与实现
C语言中随机
函数
应用可能大家都知道C语言中的随机
函数
rand
om,可是
rand
om...除了
rand
om
函数
,还有一个
rand
函数
,也是一个随机
函数
,可以产生从0到
rand
_max的随机数。#include #include int main(){int x;x =
rand
();...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章