Maison  >  Article  >  interface Web  >  js réalise l'occurrence de 1,2,3,5 selon une certaine probabilité

js réalise l'occurrence de 1,2,3,5 selon une certaine probabilité

巴扎黑
巴扎黑original
2017-09-13 09:18:521753parcourir

Cet article présente principalement l'implémentation js de génération des nombres 1, 2, 3 et 5 selon la probabilité. Les amis qui en ont besoin peuvent se référer à

js est généré selon la probabilité configurée. sont les suivants :
1 ------------50%

2------------30%

3 -------- ----15%

5------------5%

Code simple


function myRandom() {
 var rand = Math.random();
 if (rand < .5) return 1;
 if (rand < .8) return 2;
 if (rand < .95) return 3;
 return 5;
}

Les complexes


function prizeRand(oArr) {
 var sum = 0; // 总和
 var rand = 0; // 每次循环产生的随机数
 var result = 0; // 返回的对象的key

 console.log(oArr);

 // 计算总和
 for (var i in oArr) {
  sum += oArr[i][0];
 }

 // 思路就是如果设置的数落在随机数内,则返回,否则减去本次的数
 for (var i in oArr) {
  rand = Math.floor(Math.random()*sum + 1);
  if (oArr[i][0] >= rand) {
   result = oArr[i][0];
   break;
  } else {
   sum -= oArr[i][0];
  }
 }

 return result;

}

var oArr = {&#39;5&#39;:[5, &#39;Mac&#39;], &#39;3&#39;:[15, &#39;iPhone&#39;], &#39;2&#39;:[30, &#39;iPad&#39;], &#39;1&#39;:[50, &#39;iWatch&#39;]};

console.log(prizeRand(oArr));

Vous pouvez choisir en fonction de vos besoins Il est recommandé de consulter l'article précédent de Script. Maison.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn