Onhandigheid toevoegen
Met deze netjes geschreven code is het supermakkelijk om het aantal keer dat de random walk wordt gesimuleerd aan te passen. Je hoeft alleen de range()-functie in de bovenste for-lus te updaten.
We zijn nog iets vergeten! Je bent een beetje onhandig en hebt 0,5% kans om te vallen. Daarvoor moeten nog een keer willekeurige getallen worden gegenereerd. Je kunt een willekeurige float tussen 0 en 1 genereren. Als deze waarde kleiner dan of gelijk aan 0.005 is, moet je step terugzetten naar 0.
Deze oefening maakt deel uit van de cursus
Python voor gemiddeld niveau
Oefeninstructies
- Verander de
range()-functie zodat de simulatie 20 keer wordt uitgevoerd. - Maak de
if-voorwaarde af zodatstepop 0 wordt gezet als een willekeurige float kleiner dan of gelijk aan 0.005 is. Gebruiknp.random.rand().
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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()