我想创建一个函数,true在调用它的大部分时间返回,但false偶尔会返回?
偶尔我的意思是,在1000个电话中,false每50个电话平均有一个电话.
非常简单,用于Math.random获得0到1之间的数字,并将其与0.02您要查找的真/假比率进行比较.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random
Math.random()函数返回[0,1]范围内的浮点伪随机数,从0(包括)到最大但不包括1(不包括),然后您可以将其缩放到您的期望的范围.
所以,基本上:
var randomizer = function () {
return Math.random() > 0.02;
};
Run Code Online (Sandbox Code Playgroud)
编辑
如果你想让它更漂亮,你可以将这个功能打包在一个对象中,并设置真/假的比例.
var randomizer = {
_ratio: 0.02, // default ratio
setRatio: function (falses, total) {
this._ratio = falses / total;
},
getResult: function () {
return Math.random() > this._ratio;
}
};
Run Code Online (Sandbox Code Playgroud)
然后
randomizer.getResult();
randomizer.setRatio(60, 1000); // 60 out of 10000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1314 次 |
| 最近记录: |