Terapkan faktor ceroboh
Dengan kode Anda yang tersusun rapi ini, mengubah jumlah simulasi random walk menjadi sangat mudah. Anda cukup memperbarui fungsi range() pada loop for tingkat atas.
Masih ada yang kita lewatkan! Anda agak ceroboh dan memiliki peluang 0,5% untuk terjatuh. Ini memerlukan pembuatan bilangan acak tambahan. Intinya, Anda dapat menghasilkan float acak antara 0 dan 1. Jika nilainya kurang dari atau sama dengan 0,005, Anda harus mengatur ulang step menjadi 0.
Latihan ini adalah bagian dari kursus
Python Tingkat Menengah
Petunjuk latihan
- Ubah fungsi
range()sehingga simulasi dijalankan 20 kali. - Lengkapi kondisi
ifsehinggastepdiatur ke 0 jika suatu float acak kurang dari atau sama dengan 0,005. Gunakannp.random.rand().
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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()