Algorithm 版 (精华区)
发信人: sino (茶水博士), 信区: Theory
标 题: Re: 哪位大虾知道真正的随机数算法?
发信站: 哈工大紫丁香 (Sun Aug 27 13:32:50 2000), 转信
发信人: Symbol (鲨鱼木菠萝-待业一青年), 信区: Algorithm
发信站: 南京大学小百合站 (Mon Mar 13 10:04:37 2000), 转信
【 在 seagullx (树欲静而风不止) 的大作中提到: 】
: 这种随机数是不可能的
: 我就是灌水!
: 【 在 cavalier (Mickel) 的大作中提到: 】
: : 3x for 各位大虾的热心指导!可偶需要的是能够产生长达几百位十进制的随机数
: : 发生器,要求真正的随机,而不是伪随机,并且每次产生的随机数都不相同,就算
: : 获得该随机数发生器也不能预测下次或某次将会产生的是什么随机数。
: : 3x again!
好象还是有一点希望。我简单说一下,具体程序你自己去编写。
取一个映射:Y=a*X*(1-X)
初值X好象可以任意取,但不要去0,比如取个0.5
a要去一个特定的值,我建议你取在3.7附近,注意一定要比4小,不能太小。
在这个映射下不断去叠代,x会在(0..1)之间取值,有人在一篇论文中证明过,这样
叠代产生的点在区间(0..1)是稠密的,还有一些性质,具体细节我记不清了,论文的
结论就是得到的这种数字序列可以做随机数,好象和那个什么混沌的有一些联系。
关于a的取值,你可以自己写一个程序,横坐标是a (从0到4)。
对于每一个a,你使用上式不断叠代,将得到的点作为纵坐标 (从0到1)。
那个图象在许多书籍上出现过,好象叫什么“逻辑提丝映射”
a取值适当的时候,可以得到随机数。
既然你需要一个几百位十进制的随机数发生器,就拿这个先拼凑拼凑,讲究着先
用。比如去一个叠代序列中的数,去它个小数点后5,6位。再从另一个a对应的叠代
序列中拿一个数,取它的若干位,总之能凑出来。
x的初始点还可用毫秒级时钟的个位数做一个自变量。
如果你能发现这个随机数发生器产生的叠代序列的一些规律,请数学系
主任联系。
--
What you are you do not see.
What you see is your image in others's eyes.
※ 修改:.fib 於 Aug 27 13:30:32 修改本文.[FROM: bbs.hit.edu.cn]
--
※ 转寄:.南京大学小百合 bbs.nju.edu.cn.[FROM: bbs.hit.edu.cn]
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: fib.bbs@bbs.nju.edu.]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.089毫秒