Ungeschicklichkeit einbeziehen
Mit deinem sauber geschriebenen Code ist es total einfach, die Anzahl der Simulationen des Irrlaufs zu ändern. Du aktualisierst einfach die range()
-Funktion in der äußersten for
-Schleife.
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. Im Prinzip 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
range()
-Funktion 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()