У меня есть код для 1D случайного блуждания, который мне нужно запустить 20 раз и отобразить результаты в одном графике.Код работает правильно на 1 прогулку, но я не могу понять, как это сделать для нескольких прогулок.
Я пробовал цикл while и цикл for, и по какой-то причине он перебирает цикл, и добавляет результаты, вместо того, чтобы возвращаться к началу и начинать заново.Итак, если у меня есть 100 шагов и я хочу сделать эту прогулку 20 раз, она строит одну прогулку из 20 * 100 = 2000 шагов, а не 20 прогулок из 100 шагов.
Вот мой код:
import random
import matplotlib.pyplot as plt
import numpy as np
p=0.5
q=1-p
prob=[p,q]
N=100 #number of steps
n=20 #number of walks
start = 0
positions = [start]
no_of_walks=list(range(0,n+1)) #since its a half open half closed interval
for n in no_of_walks:
for i in range(0, N):
rr = random.random()
right = rr < prob[0] and positions[-1] > -N
left = rr > prob[1] and positions[-1] < N #length to be walked over
positions.append(positions[-1] - right + left)
plt.plot(positions)
plt.show()