1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| import numpy as np
import matplotlib.pyplot as plt
n_steps = 1000 #le nombre de point de la courbe
n_tracks = 50 #le nombre de molécules
x = np.zeros((n_steps,n_tracks)) #fonction
y = np.zeros((n_steps,n_tracks)) #fonction
for i in range (0, n_steps):
r = np.random.rand(n_tracks)
for k in range(10): #nombre de fois que lon refait la boucle
if 0<r[k]<0.125: #Droite
x[i,k] = x[i-1,k]+1
y[i,k] = y[i-1,k]
elif 0.125<r[k]<0.25: #Gauche
x[i,k] = x[i-1,k]-1
y[i,k] = y[i-1,k]
elif 0.25<r[k]<0.375: #Haut
x[i,k] = x[i-1,k]
y[i,k] = y[i-1,k]+1
elif 0.375<r[k]<0.5: #Haut gauche
x[i,k] = x[i-1,k]-1
y[i,k] = y[i-1,k]+1
elif 0.5<r[k]<0.625: #Bas gauche
x[i,k] = x[i-1,k]-1
y[i,k] = y[i-1,k]-1
elif 0.625<r[k]<0.75: #Haut droite
x[i,k] = x[i-1,k]+1
y[i,k] = y[i-1,k]+1
elif 0.75<r[k]<0.875: #Bas droite
x[i,k] = x[i-1,k]+1
y[i,k] = y[i-1,k]-1
else: #Bas
x[i,k] = x[i-1,k]
y[i,k] = y[i-1,k]-1
for k in range (n_tracks):
plt.plot(x,'gray', alpha=0.1)
plt.xlim(0,1000)
plt.ylim(0,200) |