我通过调用生成1到20的随机数generateRandom().如何排除某些值,例如8和15?
function generateRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
var test = generateRandom(1, 20)
Run Code Online (Sandbox Code Playgroud)
小智 10
它应该是或代替和
function generateRandom(min, max) {
var num = Math.floor(Math.random() * (max - min + 1)) + min;
return (num === 8 || num === 15) ? generateRandom(min, max) : num;
}
var test = generateRandom(1, 20)Run Code Online (Sandbox Code Playgroud)
保持生成器统计特性的一种方法是在[1,18]中生成一个数字.然后按此顺序申请:
如果数字是8或更多,请添加1.
如果数字是15或更多,请添加1.
我不愿意拒绝和重新采样,因为这会导致相关平原出现在线性同余生成器中.
| 归档时间: |
|
| 查看次数: |
11035 次 |
| 最近记录: |