Ungeschicklichkeit einbeziehen
Mit deinem sauber geschriebenen Code ist es total einfach, die Anzahl der Simulationen des Irrlaufs zu ändern. Du aktualisierst einfach die Funktion range()
in der for
Schleife auf der obersten Ebene.
Etwas haben wir aber noch vergessen: Da du nämlich auch ein bisschen ungeschickt bist, könnte es mit einer Wahrscheinlichkeit von 0,5 % passieren, dass du stolperst und die Treppe herunterfällst. Wir brauchen also einen weiteren Zufallszahlengenerator. Grundsätzlich kannst du eine zufällige Gleitkommazahl zwischen 0
und 1
erzeugen. Wenn dieser Wert kleiner oder gleich 0,005 ist, fällst du wieder auf den Treppenanfang (0) zurück.
Diese Übung ist Teil des Kurses
Python für Fortgeschrittene
Anleitung zur Übung
- Ändere die Funktion
range()
so, dass die Simulation 20 Mal durchgeführt wird. - Vervollständige die
if
-Bedingung so, dassstep
auf 0 gesetzt wird, wenn ein zufälliger Wert kleiner oder gleich 0,005 ist. Verwendenp.random.rand()
.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
# numpy and matplotlib imported, seed set
# clear the plot so it doesn't get cluttered if you run this many times
plt.clf()
# Simulate random walk 20 times
all_walks = []
for i in range(5) :
random_walk = [0]
for x in range(100) :
step = random_walk[-1]
dice = np.random.randint(1,7)
if dice <= 2:
step = max(0, step - 1)
elif dice <= 5:
step = step + 1
else:
step = step + np.random.randint(1,7)
# Implement clumsiness
if ___ :
step = 0
random_walk.append(step)
all_walks.append(random_walk)
# Create and plot np_aw_t
np_aw_t = np.transpose(np.array(all_walks))
plt.plot(np_aw_t)
plt.show()