Dieser Artikel befasst sich mit der Herausforderung, Zufallszahlen basierend auf einer bestimmten Verteilung zu generieren. Insbesondere liegt der Fokus auf einer bestimmten Verteilung, wie sie in der Eingabe beschrieben ist:
1 0.1 2 0.05 3 0.05 4 0.2 5 0.4 6 0.2
Es ist möglich, eine maßgeschneiderte Lösung für die Generierung zu entwickeln Zufallszahlen gemäß der angegebenen Verteilung. Dazu gehört die Erstellung der kumulativen Dichtefunktion und die Auswahl des entsprechenden Werts basierend auf einem zufällig generierten Wert zwischen 0 und 1. Zahlreiche vorhandene Module können diese Aufgabe jedoch vereinfachen, sodass keine manuelle Codierung erforderlich ist.
Ein solches Modul ist scipy.stats.rv_discrete, mit dem Sie Wahrscheinlichkeiten über seinen Werteparameter angeben können. Um Zufallszahlen zu generieren, können Sie die Methode rvs() des Verteilungsobjekts aufrufen.
Eine andere Möglichkeit ist die Verwendung von numpy.random.choice() Funktion. Es akzeptiert eine Liste von Werten und weist Wahrscheinlichkeiten mithilfe des Schlüsselwortparameters p zu. Zum Beispiel:
numpy.random.choice(numpy.arange(1, 7), p=[0.1, 0.05, 0.05, 0.2, 0.4, 0.2])
Für Python 3.6 und höher können Sie random.choices() aus der Standardbibliothek nutzen. Hier ist ein Beispiel:
import random random.choices(range(1, 7), weights=[0.1, 0.05, 0.05, 0.2, 0.4, 0.2])
Das obige ist der detaillierte Inhalt vonWie erzeuge ich Zufallszahlen mit einer bestimmten Verteilung in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!