Heim >Backend-Entwicklung >Python-Tutorial >Wie generiert man Zufallszahlen mit einer benutzerdefinierten Verteilung in Python?

Wie generiert man Zufallszahlen mit einer benutzerdefinierten Verteilung in Python?

Susan Sarandon
Susan SarandonOriginal
2024-11-10 19:03:02556Durchsuche

How to Generate Random Numbers with a Custom Distribution in Python?

Zufallszahlen mithilfe einer bestimmten Verteilung generieren

Sie besitzen eine Datei mit Wahrscheinlichkeiten für verschiedene Werte:

1 0.1
2 0.05
3 0.05
4 0.2
5 0.4
6 0.2

Ihr Ziel ist es, auf Grundlage dieser Verteilung Zufallszahlen zu generieren. Sie suchen nach einem vorhandenen Modul, das diese Aufgabe bewältigen kann, und sind sich darüber im Klaren, dass es sich um ein weit verbreitetes Problem handelt, das möglicherweise bereits zur Entwicklung spezieller Funktionen oder Module geführt hat.

Lösung

Das Python-Ökosystem bietet mehrere Optionen zum Generieren von Zufallszahlen mit einem bestimmten Wert Verteilung:

  1. scipy.stats.rv_discrete:

    • Geben Sie Ihre Wahrscheinlichkeiten innerhalb des Werteparameters an.
    • Verwenden Sie Die rvs()-Methode des Verteilungsobjekts zur Zufallsgenerierung Zahlen.
  2. numpy.random.choice() mit p-Parameter:

    • Übergeben Sie die Wahrscheinlichkeiten als p-Schlüsselwort Parameter.
    • Beispiel:

      numpy.random.choice(numpy.arange(1, 7), p=[0.1, 0.05, 0.05, 0.2, 0.4, 0.2])
  3. random.choices() (Python 3.6):

    • Diese Funktion aus der Standardbibliothek ermöglicht die Angabe Wahrscheinlichkeiten.
    • Beispiel:

      import random
      random.choices(population=list(range(1, 7)), weights=[0.1, 0.05, 0.05, 0.2, 0.4, 0.2])

Diese Module bieten effiziente und unkomplizierte Möglichkeiten, Zufallszahlen mit einer gegebenen Verteilung zu generieren, Dadurch entfällt die Notwendigkeit, benutzerdefinierte Algorithmen zu implementieren.

Das obige ist der detaillierte Inhalt vonWie generiert man Zufallszahlen mit einer benutzerdefinierten Verteilung in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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