JavaScript:概率算法

发布于 2022-12-16  1181 次阅读


// 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] //否则减去当前的概率范围,进入下一轮循环
      }
    }
  }

欢迎欢迎~热烈欢迎~