Heim  >  Artikel  >  Web-Frontend  >  js erkennt das Auftreten von 1,2,3,5 mit einer bestimmten Wahrscheinlichkeit

js erkennt das Auftreten von 1,2,3,5 mit einer bestimmten Wahrscheinlichkeit

巴扎黑
巴扎黑Original
2017-09-13 09:18:521752Durchsuche

In diesem Artikel wird hauptsächlich die js-Implementierung zum Generieren der Zahlen 1, 2, 3 und 5 entsprechend der Wahrscheinlichkeit vorgestellt. Freunde, die sie benötigen, können darauf verweisen.

js wird gemäß den konfigurierten Wahrscheinlichkeitsregeln generiert sind wie folgt:
1 ------------50%

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

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

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

Einfacher Code


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

Komplexe


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));

Sie können entsprechend Ihren Anforderungen auswählen. Es wird empfohlen, den vorherigen Artikel von Script zu lesen Haus.

Das obige ist der detaillierte Inhalt vonjs erkennt das Auftreten von 1,2,3,5 mit einer bestimmten Wahrscheinlichkeit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn