2013-01-08 46 views
0

可能重复:
How random is JavaScript’s Math.random?Math.random()的随机性如何?

究竟是什么算法并Math.random()使用产生的随机数?

鉴于双倍的格式和Math.random()产生的范围,有多少可能的结果?

考虑到浮点数的上述精度和(in)精度,Math.random()恰好返回0的几率是多少?

+0

好问题!我只是建议不要指望它。设置自己的概率乘以结果和四舍五入,除非你需要一个十亿分之一的机会。 – Ryan

+0

你有没有签出https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math/random? – MadSkunk

+1

查看其他问题,例如[this one](http://stackoverflow.com/questions/578700/how-trustworthy-is-javascripts-random-implementation-in-various-browsers)和[this one](http:// stackoverflow.com/questions/1062902/how-random-is-javascripts-math-random) – Pointy

回答

0

它使用一个伪随机数发生器,种子就是它被调用的时间。

本页有一些图像来比较真正的随机噪声与伪随机噪声。有趣的模式:http://boallen.com/random-numbers.html

JS伪随机可能不一定是完全一样的,但应该是接近。

0

Math.random使用统一的数字分布。

+0

是的,但...什么数字? (见最后一段) – Ryan

+1

浮点数的不准确性非常棘手。在我看来,如果你只是扩大范围,使每个选定的数字是整数(整数),然后用常数除以使它们符合期望的范围,则其中的每个数字都将具有相等的出现机会。在所有均匀分布中,简单地表示概率分布曲线中的水平线。这意味着至少在理论上所有事物都有相同的机会。 – AmbuSreedharan

+0

它不统一。这是伪随机的,看我的答案。 –

相关问题