Skip to content

Erzeugen von Zufallszahlen in Python (random, randrange, randint, etc.)

Python

In Python können Sie mit random(), randrange(), randint(), uniform() usw. im random-Modul Pseudozufallszahlen (Gleitkommazahlen Float und Integers int) erzeugen.

Das Zufallsmodul ist in der Standardbibliothek enthalten, sodass keine zusätzliche Installation erforderlich ist.

Dieser Artikel hat folgenden Inhalt.

  • random.random(): 0,0 <= Gleitkommazahl < 1,0
  • random.uniform():float in given range
  • Generieren Sie Zufallszahlen für verschiedene Verteilungen (Gauß, Gamma usw.)
  • random.randrange():int in given range and step
  • random.randint():int in given range
  • Erstellen Sie eine Liste mit Zufallszahlen
  • random.seed(): Initialisiert den Zufallszahlengenerator

Im following Artikel erfahren Sie, wie Sie Elemente einer Liste nach dem Zufallsprinzip abtasten oder mischen.

random.random(): 0,0 <= Gleitkommazahl < 1,0

random.random() erzeugt eine zufällige Fließkommazahl Float im Bereich 0,0 <= n < 1,0.

import random

print(random.random())
# 0.4496839011176701

random.uniform():float in given range

random.uniform(a, b) erzeugt eine zufällige Fließkommazahl float im Bereich a <= n <= b oder b <= n <= a.

import random

print(random.uniform(100, 200))
# 175.26585048238275

Die beiden Argumente können entweder größer oder kleiner sein. Wenn sie gleich sind, wird nur dieser Wert zurückerstattet.

print(random.uniform(100, -100))
# -27.82338731501028

print(random.uniform(100, 100))
# 100.0

Das Argument kann auch als Float angegeben werden.

print(random.uniform(1.234, 5.637))
# 2.606743596829249

Ob der Wert von b im Bereich enthalten ist, hängt, wie dokumentiert, von der Rundungsgleichung a + (ba) * random.random() ab.

Der Zielwert b kann in Abhängigkeit von der Gleitkommarundung in der Gleichung a + (ba) * random() in dem Bereich enthalten sein oder nicht.
random.uniform() – Generiert Pseudozufallszahlen – Dokumentation zu Python 3.9.7

Generieren Sie Zufallszahlen für verschiedene Verteilungen (Gauß, Gamma usw.)

Während sterben oben random() und uniform() Zufallszahlen für eine gleichmäßige Verteilung generieren, Werden auch Funktionen zum Generieren für verschiedene Verteilungen bereitgestellt.

  • Beta-Verteilung:random.betavariate()
  • Exponentialverteilung:random.expovariate()
  • Gammaverteilung:random.gammavariate()
  • Gaußsche Verteilung:random.gauss()
  • Normalverteilung protokollieren:random.lognormvariate()
  • Normalverteilung:random.normalvariate()
  • von-Mises-Verteilung:random.vonmisesvariate()
  • Pareto-Verteilung:random.paretovariate()
  • Weibull-Verteilung:random.weibullvariate()

Weitere Informationen zu jeder Distribution finden Sie in der offiziellen Dokumentation.

random.randrange():int in given range and step

random.randrange(start, stop, step) gibt eine zufällige ganze Zahl int in range(start, stop, step) zurück.

Wie bei range() can start und step weggelassen werden. Wenn weggelassen, start=0 und step=1.

import random

print(list(range(10)))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(random.randrange(10))
# 5

Sie können eine gerade oder ungerade Zufallszahl oder eine Zufallszahl, sterben ein Vielfaches einer beliebigen Ganzzahl ist, generieren. Wenn beispielsweise start gerade und step=2 ist, wird nur eine gerade Ganzzahl im Bereich zufällig generiert.

print(list(range(10, 20, 2)))
# [10, 12, 14, 16, 18]

print(random.randrange(10, 20, 2))
# 18

random.randint():int in given range

random.randint(a, b) gibt eine zufällige ganze Zahl int in a <= n <= b zurück. Es ist äquivalent zu random..randrange(a, b + 1). Beachten Sie, dass der Wert von b generiert werden kann.

print(random.randint(50, 100))
# print(random.randrange(50, 101))
# 74

Erstellen Sie eine Liste mit Zufallszahlen

Liste der zufälligen Floats

Um eine Liste zufälliger Gleitkommazahlen zu generieren, verwenden Sie random(), uniform() usw. mit Hörverständnis.

import random

print([random.random() for i in range(5)])
# [0.5518201298350598, 0.3476911314933616, 0.8463426180468342, 0.8949046353303931, 0.40822657702632625]

Weitere Informationen zu Hörverständnissen finden Sie im following Artikel.

Listener zufällig int

Beim Generieren einer Liste zufälliger Ganzzahlen kann die Verwendung von randrange() oder randint() mit den Listenverständnissen doppelte Werte enthalten.

print([random.randint(0, 10) for i in range(5)])
# [8, 5, 7, 10, 7]

Wenn Sie eine Liste zufälliger Ganzzahlen ohne Duplizierung erstellen möchten, tasten Sie Elemente von range() mit random.sample() ab.

print(random.sample(range(10), k=5))
# [6, 4, 3, 7, 5]

print(random.sample(range(100, 200, 10), k=5))
# [130, 190, 140, 150, 170]

Weitere Informationen zu random.sample() finden Sie im following Artikel.

random.seed(): Initialisiert den Zufallszahlengenerator

Sie können einen Zufallszahlengenerator mit random.seed() initialisieren.

Nach der Initialisierung mit demselben Seed wird die Zufallszahl auf dieselbe Weise generiert.

random.seed(0)
print(random.random())
# 0.8444218515250481

print(random.random())
# 0.7579544029403025

random.seed(0)
print(random.random())
# 0.8444218515250481

print(random.random())
# 0.7579544029403025