Dieser Artikel stellt hauptsächlich den Algorithmus zur Gewinnwahrscheinlichkeit in PHP und JS vor. Er hat einen gewissen Referenzwert. Jetzt können Freunde in Not auf den klassischen Wahrscheinlichkeitsalgorithmus verweisen.
Jetzt haben wir das Array: [10, 20, 30, 40] .
Bei entsprechender Gewinnwahrscheinlichkeit: 10 % für den Sonderpreis, 20 % für den ersten Preis, 30 % für den zweiten Preis, 40 % für den dritten Preis, insgesamt 100 %. Zu Beginn des Algorithmus wird ein Wert $value aus dem Array ausgewählt und dann wird eine Zahl $rand zufällig aus dem Wahrscheinlichkeitsraum von 1-100 ausgewählt. Vergleichen Sie $value und $rand. Wenn $rand innerhalb des $value-Wahrscheinlichkeitsbereichs liegt, geben Sie direkt den Schlüssel zurück, der $value entspricht. Wenn nicht, subtrahieren Sie den $value-Wert vom Wahrscheinlichkeitsraumwert. In diesem Beispiel wird nach dem ersten Urteil 10 abgezogen, was bedeutet, dass es beim zweiten Mal im Bereich von 1-90 gescreent wird. Nach dieser Filterung wird es immer eine Nummer geben, die den Anforderungen entspricht. Es ist, als würde man etwas in einer Kiste berühren Das erste ist nicht, das zweite ist nicht, und das dritte ist nicht, dann muss es das letzte sein. Dieser Algorithmus ist einfach und sehr effizient.PHP-Implementierung
Javascript-Implementierung<?php function getRand($arr) { $result = ''; //概率数组的总概率精度 $sum = array_sum($arr); //概率数组循环 foreach ($arr as $key => $value) { $rand = mt_rand(1, $sum); if ($rand <= $value) { $result = $key; break; } else { $sum -= $value; } } unset ($arr); return $result; } 使用范例: $a = [10, 20, 30, 40]; // 输出3的概率最大 echo 'PHP:' . getRand($a);Nach dem Login kopieren
Verwandte Empfehlungen:Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, das wird so sein Seien Sie für das Lernen aller nützlich. Bitte beachten Sie die chinesische PHP-Website für weitere verwandte Inhalte!<script> function getRand(arr) { var result = 0; var sum = arr.reduce(function(a, b) { return a + b; }); for (index in arr) { rand = Math.round(Math.random() * (sum - 1) + 1); if (rand <= arr[index]) { return index; } else { sum -= arr[index]; } } return result; } // 使用示例,输出2的概率最大 var a = [10, 20, 30, 40]; document.write('<br />Javascript:' + getRand(a)); </script> 使用范例: // 使用示例,输出3的概率最大 var a = [10, 20, 30, 40]; document.write('<br />Javascript:' + getRand(a));Nach dem Login kopieren
So generieren Sie schnell moderne Formulare mit PHP
php verwendet einfach die Shmop-Funktion, um gemeinsame Formulare zu erstellen Speicher zur Reduzierung der Serverlast
Das obige ist der detaillierte Inhalt vonPHP- und JS-Algorithmus zur Gewinnwahrscheinlichkeit im Lotto. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!