请研究探讨随机数产生的原理

pan2008 2003-08-15 08:18:30
请研究探讨随机数产生的原理
...全文
20 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pan2008 2003-08-15
  • 打赏
  • 举报
回复
xdspower()
请详细讲解:
整数随机数=(种子值(时间随机种子)*大素数数组某项*随机数发生器值)mod随机数取值范围)
xiaoyunet 2003-08-15
  • 打赏
  • 举报
回复
大素数数组某项怎么某来的?
kweio 2003-08-15
  • 打赏
  • 举报
回复
我觉得该用时间作为随机种子
xdspower 2003-08-15
  • 打赏
  • 举报
回复
我觉得是 整数随机数=(种子值(时间随机种子)*大素数数组某项*随机数发生器值)mod随机数取值范围)
一般这个随机数作为下次的种子值,

zhengsyao 2003-08-15
  • 打赏
  • 举报
回复
迭代实现的
a[n]=(b*a[n-1]+c)mod(RND_MAX)
一般就是这样产生伪随机数序列的,其中b是种子。
hongfeeling 2003-08-15
  • 打赏
  • 举报
回复
好东东
xdspower 2003-08-15
  • 打赏
  • 举报
回复
另,你的分十分比较少,我可以给你一些!!!!
xdspower 2003-08-15
  • 打赏
  • 举报
回复
种子值(时间随机种子)其实是一个全局系统变量,没有设置时是一个固定的值,这样是为了保证可以产生相同的随机数序列来方便一些测试(C语言就是这样实现的),在正式情况下才通过专门的函数来启动(设置为时间关系随机值,一般取当时的计算机时钟值),大素数数组就是一个含有比较大的素数的数组,一般含有几十个,这样的目的是第一个随机数取数组的第一个值进行计算,后面的值就和前面结果或者种子值有关系了,比如是种子值取数组长度的模来确定某项(也可以第一个就这样),随机数发生器可以是一个步进(步长为素数而且可以设定)循环计数器,这样仅仅是增加随机性。
上面仅仅是我个人的实现,我这样实现过一个简单的伪随机数发生器,不过我不敢说这是好的方法,用计算机产生随机数还有许多方法,其实比较好的方法就是真正的找到一个随机源,现在有的系统上就实现了这样的源,比如检测电源的波动来实现一个随机源(电源是模拟量,就是计算机里的稳压电源的电压其实在一定范围内也是不停波动的,在足够好的数模转换中就可以转换为一个随机数发生器了(种子发生器)

69,370

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧