>  기사  >  웹 프론트엔드  >  JavaScript는 확률을 기반으로 무작위 이벤트 생성을 어떻게 구현합니까?

JavaScript는 확률을 기반으로 무작위 이벤트 생성을 어떻게 구현합니까?

黄舟
黄舟원래의
2017-08-03 15:30:532871검색

이 글은 주로 자바스크립트의 확률 기반 이벤트 랜덤 생성에 대한 자세한 설명을 소개하고 있습니다. 참고할만한 가치가 있으니 관심 있는 친구들이 참고하시면 됩니다.

최근에 자바스크립트 확률 기반 이벤트 랜덤 생성을 만들어서 정리했습니다. 아이디어를 작성하고 작은 데모를 만들었습니다:


/*
*在抽奖的活动中经常会用到这个算法,不同奖项的获取概率不同,要按概率去随机生成对应的奖品
*
*/
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으로 문의하세요.
이전 기사:jQuery 학습 경로다음 기사:jQuery 학습 경로