【发布时间】:2010-11-06 23:13:28
【问题描述】:
6 年来,我的网站上有一个random number generator 页面。长期以来,它是 Google 上“随机数生成器”的第一个或第二个结果,并且已被用于决定论坛和博客上的数十个(如果不是数百个)竞赛和绘图(我知道,因为我在我的网络日志,通常去看看)。
今天,有人给我发电子邮件告诉我它可能不像我想象的那样随机。她尝试生成非常大的随机数(例如,1 到 10000000000000000000 之间),发现它们几乎总是相同的位数。事实上,我将函数封装在一个循环中,这样我就可以生成数千个数字,而且果然,对于非常大的数字,变化只有大约 2 个数量级。
为什么?
这里是循环版,大家可以自己试一试:
http://andrew.hedges.name/experiments/random/randomness.html
它包括取自 Mozilla Developer Network 的简单实现和一些 1997 年的代码,这些代码是我从一个不再存在的网页上刷下来的(Paul Houle 的“Central Randomizer 1.3”)。查看源代码以了解每种方法的工作原理。
我读过here 和elsewhere 关于Mersenne Twister 的文章。 我感兴趣的是为什么JavaScript 的内置结果不会有更大的变化Math.random 函数。谢谢!
【问题讨论】:
-
-
如果您正在寻找标题中问题的答案,请参阅stackoverflow.com/questions/2344312/…
标签: javascript random