首页 > 编程语言 >概率算法(用于抽奖等场景)

概率算法(用于抽奖等场景)

时间:2023-01-01 15:33:50浏览次数:34  
标签:抽奖 name prop 算法 场景 var

let gifts = [
  {
    "name":"mac",
    "prop":1
  },
  {
     "name":"红米",
     "prop":10
  },
  {
     "name":"u盘",
    "prop":40
  },
  {
    "name":"香皂",
    "prop":49
  }
];
function getResult(arr){
   var leng = 0;
   for(var i=0; i<arr.length; i++){
     leng+=arr[i]                                     //获取总数
   }
   for(var i=0; i<arr.length; i++){
      var random = parseInt(Math.random()*leng);       //获取 0-总数 之间的一个随随机整数
      if(random<arr[i]){
         return i                                     //如果在当前的概率范围内,得到的就是当前概率
      } else {
         leng-=arr[i]                                 //否则减去当前的概率范围,进入下一轮循环
     }
  }
}

 let gArr = [];
 for(var i=0; i<gifts.length; i++){
    gArr.push(gifts[i]['prop'])
 }
 console.log(gifts[getResult(gArr)]['name'])    

 

标签:抽奖,name,prop,算法,场景,var
From: https://www.cnblogs.com/Essaycode/p/17018116.html

相关文章