


Gewinnwahrscheinlichkeitsalgorithmus (PHP kann für Rubbellose, Riesenr?der und andere Lotteriealgorithmen verwendet werden)
Jul 29, 2016 am 09:10 AMPHP-Algorithmus zur Gewinnwahrscheinlichkeit, der für Rubbellose, Riesenr?der und andere Lotteriealgorithmen verwendet werden kann. Die Verwendung ist sehr einfach, der Code enth?lt detaillierte Kommentare und Anweisungen und Sie k?nnen ihn auf einen Blick verstehen
<?<span>php </span><span>/*</span><span> * 經(jīng)典的概率算法, * $proArr是一個(gè)預(yù)先設(shè)置的數(shù)組, * 假設(shè)數(shù)組為:array(100,200,300,400), * 開(kāi)始是從1,1000 這個(gè)概率范圍內(nèi)篩選第一個(gè)數(shù)是否在他的出現(xiàn)概率范圍之內(nèi), * 如果不在,則將概率空間,也就是k的值減去剛剛的那個(gè)數(shù)字的概率空間, * 在本例當(dāng)中就是減去100,也就是說(shuō)第二個(gè)數(shù)是在1,900這個(gè)范圍內(nèi)篩選的。 * 這樣 篩選到最終,總會(huì)有一個(gè)數(shù)滿足要求。 * 就相當(dāng)于去一個(gè)箱子里摸東西, * 第一個(gè)不是,第二個(gè)不是,第三個(gè)還不是,那最后一個(gè)一定是。 * 這個(gè)算法簡(jiǎn)單,而且效率非常 高, * 關(guān)鍵是這個(gè)算法已在我們以前的項(xiàng)目中有應(yīng)用,尤其是大數(shù)據(jù)量的項(xiàng)目中效率非常棒。 </span><span>*/</span><span>function</span> get_rand(<span>$proArr</span><span>) { </span><span>$result</span> = ''<span>; </span><span>//</span><span>概率數(shù)組的總概率精度 </span><span>$proSum</span> = <span>array_sum</span>(<span>$proArr</span><span>); </span><span>//</span><span>概率數(shù)組循環(huán) </span><span>foreach</span> (<span>$proArr</span><span>as</span><span>$key</span> => <span>$proCur</span><span>) { </span><span>$randNum</span> = <span>mt_rand</span>(1, <span>$proSum</span><span>); </span><span>if</span> (<span>$randNum</span> <= <span>$proCur</span><span>) { </span><span>$result</span> = <span>$key</span><span>; </span><span>break</span><span>; } </span><span>else</span><span> { </span><span>$proSum</span> -= <span>$proCur</span><span>; } } </span><span>unset</span> (<span>$proArr</span><span>); </span><span>return</span><span>$result</span><span>; } </span><span>/*</span><span> * 獎(jiǎng)項(xiàng)數(shù)組 * 是一個(gè)二維數(shù)組,記錄了所有本次抽獎(jiǎng)的獎(jiǎng)項(xiàng)信息, * 其中id表示中獎(jiǎng)等級(jí),prize表示獎(jiǎng)品,v表示中獎(jiǎng)概率。 * 注意其中的v必須為整數(shù),你可以將對(duì)應(yīng)的 獎(jiǎng)項(xiàng)的v設(shè)置成0,即意味著該獎(jiǎng)項(xiàng)抽中的幾率是0, * 數(shù)組中v的總和(基數(shù)),基數(shù)越大越能體現(xiàn)概率的準(zhǔn)確性。 * 本例中v的總和為100,那么平板電腦對(duì)應(yīng)的 中獎(jiǎng)概率就是1%, * 如果v的總和是10000,那中獎(jiǎng)概率就是萬(wàn)分之一了。 * </span><span>*/</span><span>$prize_arr</span> = <span>array</span><span>( </span>'0' => <span>array</span>('id'=>1,'prize'=>'平板電腦','v'=>1), '1' => <span>array</span>('id'=>2,'prize'=>'數(shù)碼相機(jī)','v'=>5), '2' => <span>array</span>('id'=>3,'prize'=>'音箱設(shè)備','v'=>10), '3' => <span>array</span>('id'=>4,'prize'=>'4G優(yōu)盤','v'=>12), '4' => <span>array</span>('id'=>5,'prize'=>'10Q幣','v'=>22), '5' => <span>array</span>('id'=>6,'prize'=>'下次沒(méi)準(zhǔn)就能中哦','v'=>50),<span> ); </span><span>/*</span><span> * 每次前端頁(yè)面的請(qǐng)求,PHP循環(huán)獎(jiǎng)項(xiàng)設(shè)置數(shù)組, * 通過(guò)概率計(jì)算函數(shù)get_rand獲取抽中的獎(jiǎng)項(xiàng)id。 * 將中獎(jiǎng)獎(jiǎng)品保存在數(shù)組$res['yes']中, * 而剩下的未中獎(jiǎng)的信息保存在$res['no']中, * 最后輸出json個(gè)數(shù)數(shù)據(jù)給前端頁(yè)面。 </span><span>*/</span><span>foreach</span> (<span>$prize_arr</span><span>as</span><span>$key</span> => <span>$val</span><span>) { </span><span>$arr</span>[<span>$val</span>['id']] = <span>$val</span>['v'<span>]; } </span><span>$rid</span> = get_rand(<span>$arr</span>); <span>//</span><span>根據(jù)概率獲取獎(jiǎng)項(xiàng)id </span><span>$res</span>['yes'] = <span>$prize_arr</span>[<span>$rid</span>-1]['prize']; <span>//</span><span>中獎(jiǎng)項(xiàng) </span><span>unset</span>(<span>$prize_arr</span>[<span>$rid</span>-1]); <span>//</span><span>將中獎(jiǎng)項(xiàng)從數(shù)組中剔除,剩下未中獎(jiǎng)項(xiàng) </span><span>shuffle</span>(<span>$prize_arr</span>); <span>//</span><span>打亂數(shù)組順序 </span><span>for</span>(<span>$i</span>=0;<span>$i</span><<span>count</span>(<span>$prize_arr</span>);<span>$i</span>++<span>){ </span><span>$pr</span>[] = <span>$prize_arr</span>[<span>$i</span>]['prize'<span>]; } </span><span>$res</span>['no'] = <span>$pr</span><span>; </span><span>print_r</span>(<span>$res</span>);
Das Obige stellt den Gewinnwahrscheinlichkeitsalgorithmus vor (PHP kann für Rubbellose, Riesenr?der und andere Lotteriealgorithmen verwendet werden), einschlie?lich relevanter Inhalte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

Viele Benutzer werden sich bei der Auswahl von Smartwatches für die Marke Huawei entscheiden. Viele Benutzer sind neugierig auf den Unterschied zwischen Huawei GT3pro und GT4. Was sind die Unterschiede zwischen Huawei GT3pro und GT4? 1. Aussehen GT4: 46 mm und 41 mm, das Material ist Glasspiegel + Edelstahlgeh?use + hochaufl?sende Faserrückschale. GT3pro: 46,6 mm und 42,9 mm, das Material ist Saphirglas + Titangeh?use/Keramikgeh?use + Keramikrückschale 2. Gesundes GT4: Mit dem neuesten Huawei Truseen5.5+-Algorithmus werden die Ergebnisse genauer. GT3pro: EKG-Elektrokardiogramm sowie Blutgef?? und Sicherheit hinzugefügt

Warum das Snipping-Tool unter Windows 11 nicht funktioniert Das Verst?ndnis der Grundursache des Problems kann dabei helfen, die richtige L?sung zu finden. Hier sind die h?ufigsten Gründe, warum das Snipping Tool m?glicherweise nicht ordnungsgem?? funktioniert: Focus Assistant ist aktiviert: Dies verhindert, dass das Snipping Tool ge?ffnet wird. Besch?digte Anwendung: Wenn das Snipping-Tool beim Start abstürzt, ist es m?glicherweise besch?digt. Veraltete Grafiktreiber: Inkompatible Treiber k?nnen das Snipping-Tool beeintr?chtigen. St?rungen durch andere Anwendungen: Andere laufende Anwendungen k?nnen mit dem Snipping Tool in Konflikt geraten. Das Zertifikat ist abgelaufen: Ein Fehler w?hrend des Upgrade-Vorgangs kann zu diesem Problem führen. Diese einfache L?sung ist für die meisten Benutzer geeignet und erfordert keine besonderen technischen Kenntnisse. 1. Aktualisieren Sie Windows- und Microsoft Store-Apps

Titel: Beispiel für die Verwendung der Array.Sort-Funktion zum Sortieren eines Arrays in C#. Text: In C# ist Array eine h?ufig verwendete Datenstruktur, und h?ufig sind Array-Sortiervorg?nge erforderlich. C# stellt die Array-Klasse bereit, die über die Sort-Methode verfügt, um Arrays bequem zu sortieren. In diesem Artikel wird gezeigt, wie Sie ein Array mithilfe der Array.Sort-Funktion in C# sortieren, und es werden spezifische Codebeispiele bereitgestellt. Zun?chst müssen wir die grundlegende Verwendung der Array.Sort-Funktion verstehen. Array.So

Beim Programmieren in PHP müssen wir h?ufig Arrays zusammenführen. PHP stellt die Funktion array_merge() bereit, um die Array-Zusammenführung abzuschlie?en. Wenn jedoch derselbe Schlüssel im Array vorhanden ist, überschreibt diese Funktion den ursprünglichen Wert. Um dieses Problem zu l?sen, stellt PHP in der Sprache auch eine Funktion array_merge_recursive() bereit, die Arrays zusammenführen und die Werte derselben Schlüssel beibehalten kann, wodurch das Programmdesign flexibler wird. array_merge

In PHP gibt es viele leistungsstarke Array-Funktionen, die Array-Operationen komfortabler und schneller machen k?nnen. Wenn wir zwei Arrays zu einem assoziativen Array kombinieren müssen, k?nnen wir diese Operation mit der Funktion array_combine von PHP ausführen. Diese Funktion wird tats?chlich verwendet, um die Schlüssel eines Arrays als Werte eines anderen Arrays zu einem neuen assoziativen Array zu kombinieren. Als n?chstes erkl?ren wir, wie man die Funktion array_combine in PHP verwendet, um zwei Arrays zu einem assoziativen Array zu kombinieren. Erfahren Sie mehr über array_comb

Teil 1: Erste Schritte zur Fehlerbehebung überprüfen des Apple-Systemstatus: Bevor wir uns mit komplexen L?sungen befassen, beginnen wir mit den Grundlagen. Das Problem liegt m?glicherweise nicht an Ihrem Ger?t; die Server von Apple sind m?glicherweise ausgefallen. Besuchen Sie die Systemstatusseite von Apple, um zu sehen, ob der AppStore ordnungsgem?? funktioniert. Wenn es ein Problem gibt, k?nnen Sie nur warten, bis Apple es behebt. überprüfen Sie Ihre Internetverbindung: Stellen Sie sicher, dass Sie über eine stabile Internetverbindung verfügen, da das Problem ?Verbindung zum AppStore nicht m?glich“ manchmal auf eine schlechte Verbindung zurückzuführen ist. Versuchen Sie, zwischen WLAN und mobilen Daten zu wechseln oder die Netzwerkeinstellungen zurückzusetzen (Allgemein > Zurücksetzen > Netzwerkeinstellungen zurücksetzen > Einstellungen). Aktualisieren Sie Ihre iOS-Version:

php提交表單通過(guò)后,彈出的對(duì)話框怎樣在當(dāng)前頁(yè)彈出php提交表單通過(guò)后,彈出的對(duì)話框怎樣在當(dāng)前頁(yè)彈出而不是在空白頁(yè)彈出?想實(shí)現(xiàn)這樣的效果:而不是空白頁(yè)彈出:------解決方案--------------------如果你的驗(yàn)證用PHP在后端,那么就用Ajax;僅供參考:HTML code

Watch4pro und GT verfügen jeweils über unterschiedliche Funktionen und Anwendungsszenarien. Wenn Sie Wert auf umfassende Funktionen, hohe Leistung und ein stilvolles Erscheinungsbild legen und bereit sind, einen h?heren Preis in Kauf zu nehmen, ist Watch 4 Pro m?glicherweise besser geeignet. Wenn Sie keine hohen funktionalen Ansprüche haben und mehr Wert auf Akkulaufzeit und einen angemessenen Preis legen, ist die GT-Serie m?glicherweise besser geeignet. Die endgültige Wahl sollte auf der Grundlage pers?nlicher Bedürfnisse, Budgets und Vorlieben getroffen werden. Es wird empfohlen, vor dem Kauf Ihre eigenen Bedürfnisse sorgf?ltig zu prüfen und sich die Bewertungen und Vergleiche verschiedener Produkte anzusehen, um eine fundiertere Entscheidung zu treffen.
