브라운 운동을 시뮬레이트하는 코드를 만들고 있습니다.목록이 많을 때 코드를 최소화하는 방법은 무엇입니까?
from random import random
import matplotlib.pyplot as plt
import numpy as np
N=100
p=0.5
l=1
x1=[]
x2=[]
x1.append(0)
x2.append(0)
for i in range(1, N):
step = -l if random() < p else l
X1 = x1[i-l] + step
x1.append(X1)
for i in range(1, N):
step = -l if random() < p else l
X2 = x2[i-l] + step
x2.append(X2)
x1mean=np.array(x1)
x2mean=np.array(x2)
mean=[]
for j in range (0,N):
mean.append((x1mean[j]+x2mean[j])/2.0)
plt.plot(mean)
plt.plot(x1)
plt.plot(x2)
plt.show()
이 코드는 당신이 볼 수 있듯이, 내가 찾고 있어요 (100) 좋아하는, 2 개 개의 다른 입자의 변위를 만드는,하지만 난 입자의 큰 숫자를해야 제대로 의미 변위를 계산하기 위해 동일한 코드를 100 번 반복 할 수 없기 때문에 코드를 응축하는 방법을 찾아야합니다.
이 코드를 모두 1 변수 (즉, 입자 수)의 함수로 만드는 루프를 만드는 방법이 있습니까?
감사합니다.
'import's 다음에는 첫 번째 줄'N = 100'을'def function_name (N) :'으로 바꾸고 나머지 코드는 들여 쓰기합니다. 그런 다음 새로운 함수를 호출하고 인수 값으로 입자 수를 전달할 수 있습니다 (즉, function_name (42)). – martineau