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!