JavaScript Math.Random()连续两次创建相同数字的几率是多少?

前端之家收集整理的这篇文章主要介绍了JavaScript Math.Random()连续两次创建相同数字的几率是多少?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
它是否正确?使用 – http://en.wikipedia.org/wiki/Binomial_probability

看起来值从.0000000000000000到.9999999999999999

发生两次的概率= p ^ 2 =(1/9999999999999999)^ 2 = 1.0 e-32

我想我在这里错过了一些东西?

另外,伪随机数发生器如何改变这种计算?

谢谢.

解决方法

在一个理想的世界中,Math.random()绝对是随机的,一个输出完全独立于另一个输出,(假设p =产生任何给定数字的概率)导致重复的任何值可能为p ^ 2紧接着(正如其他人已经说过的那样).

在实践中,人们希望Math.random快速,这意味着引擎使用伪随机生成器.有许多不同类型的PRNG,但最基本的是线性同余发生器,它基本上是一个功能

s(n + 1) = some_prime * s(n) + some_value mod some_other_prime

如果使用这样的生成器,那么在调用random()some_other_prime次之前,您将看不到重复的值.你保证这一点.

然而,相对最近,显而易见的是,这种行为(加上PRNG与当前时间一起播种)可以用于某些形式的跟踪导致浏览器做了很多事情,这意味着你不能假设随后的随机事件( )电话.

猜你在找的JavaScript相关文章