// arr格式
let arr = [0.8, 0.05, 0.08, 0.05, 0.1, 0.2]
// 函数,返回指定概率数组(arr)的下标
getResult(arr) {
var propSum = 0;
for (var i = 0; i < arr.length; i++) {
propSum += arr[i] //获取概率总数
}
for (var i = 0; i < arr.length; i++) {
var random = Math.random() * propSum; //获取 0-propSum 之间的一个随随机整数
if (random < arr[i]) {
return i //如果在当前的概率范围内,得到的就是当前概率的下标
} else {
propSum -= arr[i] //否则减去当前的概率范围,进入下一轮循环
}
}
}
JavaScript:概率算法
发布于 2022-12-16 1181 次阅读
Comments | NOTHING