Uwzględnij niezdarność
Dzięki tak przejrzystemu kodowi zmiana liczby symulowanych spacerów losowych jest bardzo prosta. Wystarczy zaktualizować funkcję range() w pętli for na najwyższym poziomie.
Jest jeszcze jedna rzecz, o której zapomnieliśmy! Jesteś trochę niezdarny i masz 0,5% szans na upadek. To wymaga wygenerowania kolejnej liczby losowej. Możesz wygenerować losową liczbę zmiennoprzecinkową z zakresu od 0 do 1. Jeśli ta wartość jest mniejsza lub równa 0,005, zmienna step powinna zostać zresetowana do 0.
To ćwiczenie jest częścią kursu
Python średnio zaawansowany
Instrukcje do ćwiczenia
- Zmień funkcję
range()tak, aby symulacja była wykonywana 20 razy. - Uzupełnij warunek
iftak, aby zmiennastepbyła ustawiana na 0, gdy losowa liczba zmiennoprzecinkowa jest mniejsza lub równa 0,005. Użyjnp.random.rand().
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()