Python-Programmierung: Random

Aus Wikibooks

Wechseln zu: Navigation, Suche

Das random-Modul stellt eine Reihe von Zufallsfunktionen bereit. Zur Verwendung des random-Moduls, muss dieses zunächst mit import random importiert werden.

Inhaltsverzeichnis

[Bearbeiten] random()

Gibt eine Zufallzahl zischen 0.0 und 1.0 zurück.

>>> random.random()
0.28396990573542813
>>> random.random()
0.37306134877327268
>>> random.random()
0.98256820574915393
>>> for i in range(5):
	print random.random()
 
0.89167873018
0.445475183506
0.120547487172
0.569274657561
0.201548561824

[Bearbeiten] uniform(a, b)

Gibt eine gleichverteilte Zufallszahl (float) zwischen a und b aus (a <= x < b).

>>> random.uniform(1, 10)
6.3970639899381769

[Bearbeiten] gauss(mu, sigma)

Gibt eine normalverteilte Zufallszahl mit dem Mittelwert mu und der Standardabweichung sigma zurück.

>>> random.gauss(5, 2)
6.3865365546439046

Das random-Modul bietet noch eine ganze Reihe weiterer Funktionen zur Erzeugung spezieller Zufallsverteilungen, z.B.:

  • betavariate(alpha, beta) - Betaverteilung
  • expovariate(lambd) - Exponentialverteilung
  • gammavariate(alpha, beta) - Gamma-Verteilung
  • lognormvariate(mu, sigma) - logarithmische Normalverteilung
  • vonmisesvariate(mu, kappa) - Von-Mises-Verteilung
  • paretovariate(alpha) - Pareto-Verteilung
  • weibullvariate(alpha, beta) - Weibullverteilung

[Bearbeiten] randint(a, b)

Gibt eine gleichverteilte Zufallszahl (int) zwischen a und b aus (a <= x <= b).

>>> random.randint(1, 6)  # Würfeln
4

[Bearbeiten] randrange( [start,] stop[, step])

Gibt ein zufälliges Element aus range([start,] stop[, step]) ohne ein range-Object zu erzeugen zurück.

>>> range(0, 21, 2)
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
>>> random.randrange(0, 21, 2)
10

[Bearbeiten] choice(seq)

Gibt ein zufälliges Element aus seq zurück.

>>> random.choice('abcdefg')
'd'

Man sollte immer im Hinterkopf behalten, dass eine Liste in Python Elemente beliebigen Typs aufnehmen kann. So kann beispielsweise auch eine Liste mit Funktionen erstellt werden. Im nachfolgenden Beispiel wird mit den gegebenen Argumenten (4, 3) eine zufällige Funktion ausgeführt (Addition, Subtraktion, Multiplikation). Dies kann z.B. bei der Simulation von komplexen Zufallsvorgängen nützlich sein.

>>> plus = lambda a, b: a + b
>>> minus = lambda a, b: a - b
>>> mult = lambda a, b: a * b
>>> operation = random.choice([plus, minus, mult])
>>> operation(4, 3)
12  # Multiplikationn wurde durchgeführt

[Bearbeiten] sample(population, k)

Gibt k zufällige Elemente aus population zurück.

>>> random.sample([1, 2, 3, 4, 5],  3) 
[1, 5, 2]

[Bearbeiten] shuffle(x [, random])

Bringt die Elemente in x in eine zufällige Reihenfolge.

>>> items = [1, 2, 3, 4, 5, 6, 7]
>>> random.shuffle(items)
>>> items
[7, 3, 2, 5, 6, 4, 1]

<< Inhaltsverzeichnis

Persönliche Werkzeuge