首頁  >  文章  >  web前端  >  JavaScript如何按機率實現隨機生成事件?

JavaScript如何按機率實現隨機生成事件?

黄舟
黄舟原創
2017-08-03 15:30:532878瀏覽

本篇文章主要介紹了詳解JavaScript按概率隨機生成事件,具有一定的參考價值,有興趣的小伙伴們可以參考一下

最近做了一個JavaScript按概率隨機生成事件,於是整理了一下思路,寫了一個小demo:


/*
*在抽奖的活动中经常会用到这个算法,不同奖项的获取概率不同,要按概率去随机生成对应的奖品
*
*/
function random(arr1, arr2) {
  var sum = 0,
    factor = 0,
    random = Math.random();

  for(var i = arr2.length - 1; i >= 0; i--) {
    sum += arr2[i]; // 统计概率总和
  };
  random *= sum; // 生成概率随机数
  for(var i = arr2.length - 1; i >= 0; i--) {
    factor += arr2[i];
    if(random <= factor) 
     return arr1[i];
  };
  return null;
};

// test
var a = [&#39;mac&#39;, &#39;iphone&#39;, &#39;vivo&#39;, &#39;OPPO&#39;];
var b = [0.1, 0.2, 0.3, 0.4];
console.log(random(a, b));

以上是JavaScript如何按機率實現隨機生成事件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn