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