Heim  >  Artikel  >  Web-Frontend  >  Generieren Sie Zahlen basierend auf der Wahrscheinlichkeit

Generieren Sie Zahlen basierend auf der Wahrscheinlichkeit

php中世界最好的语言
php中世界最好的语言Original
2018-04-17 16:48:281930Durchsuche

Dieses Mal werde ich Ihnen die Vorsichtsmaßnahmen zum Generieren von Zahlen basierend auf der Wahrscheinlichkeit und zum Generieren von Zahlen basierend auf der Wahrscheinlichkeit vorstellen. Das Folgende ist ein praktischer Fall, schauen wir uns das an.

js wird gemäß der konfigurierten Wahrscheinlichkeit generiert. Die Wahrscheinlichkeitsregel lautet 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;
}

Die komplizierteren

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 = {'5':[5, 'Mac'], '3':[15, 'iPhone'], '2':[30, 'iPad'], '1':[50, 'iWatch']};
console.log(prizeRand(oArr));

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:



Das obige ist der detaillierte Inhalt vonGenerieren Sie Zahlen basierend auf der 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