Pythonは科学計算やシミュレーションに向いた言語であり、様々な分野で利用されています。今回は、Pythonを使って酔っ払いウォーク(ランダムウォーク)のシミュレーションを行ってみます。
酔っ払いウォークとは
酔っ払いウォークとは、ランダムな方向に一定のステップ数だけ進む運動のことを言います。一歩進むごとに進む方向がランダムであり、進むステップ数もランダムなため、予測不能でありながら一定のパターンを持っています。酔っ払いが歩くように、迷子になりやすく、元の場所に戻ってくることもあります。
実装方法
Pythonで酔っ払いウォークのシミュレーションを実装するには、numpyとmatplotlibライブラリを使用します。以下は、ランダムな方向とステップ数を生成するコードです。
import numpy as np
def random_direction():
"""ランダムな方向を返す"""
return np.random.choice(['N', 'S', 'E', 'W'])
def random_step():
"""ランダムなステップ数を返す"""
return np.random.randint(1, 5)
これらの関数を使って、酔っ払いウォークをシミュレーションするコードは以下のようになります。
import numpy as np
import matplotlib.pyplot as plt
def random_direction():
"""ランダムな方向を返す"""
return np.random.choice(['N', 'S', 'E', 'W'])
def random_step():
"""ランダムなステップ数を返す"""
return np.random.randint(1, 5)
def drunkard_walk(num_steps):
"""酔っ払いウォークをシミュレーションする"""
x, y = 0, 0
for i in range(num_steps):
direction = random_direction()
step = random_step()
if direction == 'N':
y += step
elif direction == 'S':
y -= step
elif direction == 'E':
x += step
else:
x -= step
return x, y
# シミュレーション実行
x, y = drunkard_walk(1000)
# 結果のプロット
plt.plot(x, y)
plt.show()
実行すると、酔っ払いウォークの軌跡をプロットしたグラフが表示されます。
まとめ
Pythonを使って酔っ払
いウォークのシミュレーションを行い、その結果をグラフにプロットする方法を紹介しました。ランダムな方向とステップ数を生成するためにnumpyライブラリを使い、グラフの描画にはmatplotlibライブラリを利用しました。これらのライブラリを駆使することで、Pythonで様々なシミュレーションを行うことができます。