分布を描画する
こうした凝った可視化に気を取られて、本筋から少し外れてしまいました。まだ、重要な問題を解決しなければなりません。エンパイアステートビルで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
____
____