我想知道创建概率的最佳或最广为接受的方法是什么。我做了一些研究,发现了一些关于 Math.random() 主题的有趣问题和答案,例如:
JavaScript 的 Math.random 有多随机?
和
我正在寻找一种简单的方法来修改使用 Math.random() 的值是否为真的概率
例如,我知道这Math.floor(Math.random() * 2)是一种在近 50% 的情况下生成 1 的有用方法:
-Math.random() 生成一个介于 0(含)和 1(不含)之间的随机数
-如果生成的数<0.5,这个数乘以2仍然会小于1,所以这个数.floor()返回一个0
-如果生成的数>0.5,这个数乘以2会大于1,所以这个数.floor()返回1
我想歪曲使用“修饰符”获得 1 的概率,这与我必须获得所需的概率一样接近......
每次运行代码片段时,控制台都会打印命中百分比。正如您所看到的,它们几乎是准确的,但并不完全准确。我通过反复试验想出了指数修改函数。有什么办法可以让这个更准确吗?
var youHit = Math.floor(Math.random() * 2);
var totalTries = 0;
var hits = 0;
var pointNine = 0.9; // you want 90% of tries to hit
var pointEight = 0.8;// you want 80% of tries to hit
var pointSeven = 0.7;// you want 70% of …Run Code Online (Sandbox Code Playgroud)