Math.random()可以精确等于0.5吗

时间:2018-08-28 01:49:22

标签: javascript

这不是第一次要求“ Math.random()是否相等”。

Will JavaScript random function ever return a 0 or 1?

Is it possible for Math.random() === Math.random()

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random-更高级别的说明

https://hackernoon.com/how-does-javascripts-math-random-generate-random-numbers-ef0de6a20131-较低级别的说明

所以;我的问题: JavaScript的Math.random()可以完全等于.5吗?

它符合>= 0 && < 1的定义。但实际上,我尝试了几种不同的方法,最后一种是:

while (Math.random() != .5)

它们要么超时要么从不完全相等。.5

数十亿次尝试/多个浏览器(firefox 60+ X64)随后崩溃。可能吗?是否依赖于浏览器/系统?是我对统计概率缺乏理解吗?

1 个答案:

答案 0 :(得分:-3)

好问题!我不是统计学家,因此拥有更多经验的人可以随时加入并纠正我。

据我所知,您的问题的答案是

  

所以;我的问题 JavaScript的Math.random()是否可以精确等于.5

!这个答案令我有些惊讶,因为它有点反常。但我认为this website提供了很好的解释。答案是否定的原因是,您被限制在(0,1)(不包括)范围内。这是一个连续的分布。因此,您的问题本质上是在问:

  

从连续分布中选择特定值的可能性是什么?

答案是0。从连续分布中采样(根据定义)有无限多种可能性。因此,获得指定值的可能性为:1 /无穷大,渐近接近零。