繪製分佈
這些花俏的視覺化讓我們有點離題了。我們還是得解決那個價值百萬的問題:你在帝國大廈能走到第 60 階的機率有多大?
基本上,你想知道的是所有隨機漫步的終點位置。這些終點會形成某種分佈,你可以用長條圖來視覺化。
注意,如果你的程式碼跑很久,可能是你把錯誤的資料拿去畫長條圖了!
本練習屬於課程
Python 中級
練習說明
- 為了確保模擬次數夠多,放手一搏,將隨機漫步模擬 500 次。
- 從
np_aw_t選取最後一列。這裡包含了你模擬的 500 次隨機漫步的終點。把這個 NumPy 陣列存成ends。 - 使用
plt.hist()為ends繪製長條圖。別忘了用plt.show()顯示圖表。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# numpy and matplotlib imported, seed set
# Simulate random walk 500 times
all_walks = []
for i in range(500) :
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)
if np.random.rand() <= 0.001 :
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))
# Select last row from np_aw_t: ends
____ = ____[____,____]
# Plot histogram of ends, display plot
____
____