Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich gewichtete Zufallszahlen in PHP generieren?

Wie kann ich gewichtete Zufallszahlen in PHP generieren?

Susan Sarandon
Freigeben: 2024-12-10 16:37:11
Original
575 Leute haben es durchsucht

How Can I Generate Weighted Random Numbers in PHP?

Gewichtete Zufallszahlengenerierung in PHP

Diese Frage untersucht die Herausforderung der Generierung von Zufallszahlen bei gleichzeitiger Zuweisung unterschiedlicher Wahrscheinlichkeiten zu bestimmten Bereichen. In PHP bietet die Funktion mt_rand() eine Möglichkeit, zufällige Ganzzahlen zu generieren, ermöglicht jedoch keine gewichteten Ergebnisse.

Um diese Einschränkung zu überwinden, können Sie das Konzept gewichteter Wahrscheinlichkeiten verwenden. Bei diesem Ansatz wird ein assoziatives Array erstellt, in dem die Schlüssel die gewünschten Ergebnisse und die Werte ihre jeweiligen Gewichtungen darstellen. Die Gesamtgewichtung aller Ergebnisse sollte die maximal mögliche Gewichtung ergeben.

Um ein zufälliges Ergebnis basierend auf den bereitgestellten Gewichtungen zu generieren, müssen Sie mithilfe von mt_rand einen Zufallswert zwischen 1 und der Gesamtgewichtung berechnen ()-Funktion. Anschließend durchlaufen Sie das gewichtete Array und subtrahieren die Gewichtung jedes Ergebnisses vom Zufallswert. Das erste Ergebnis, bei dem der Zufallswert negativ oder null wird, wird als gewichtetes Zufallsergebnis ausgewählt.

Die bereitgestellte PHP-Funktion getRandomWeightedElement() implementiert diesen Ansatz und ermöglicht es Ihnen, ein assoziatives Array gewichteter Ergebnisse anzugeben und die entsprechenden Ergebnisse zurückzugeben Zufallsschlüssel. Beachten Sie, dass die Gewichte ganze Zahlen sein sollten und nicht ganzzahlige Gewichte möglicherweise benutzerdefinierte Anpassungen dieser Funktion erfordern.

Das obige ist der detaillierte Inhalt vonWie kann ich gewichtete Zufallszahlen in PHP generieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage