python中隨機漫步的寫法
阿新 • • 發佈:2018-11-06
from random import choice class RandomWalk(): def __init__(self,num_points=5000): self.num_points = num_points self.x_values = [0] self.y_values = [0] def get_step(self): direction = choice([-1, 1]) distance = choice([0, 1, 2.3, 4]) step = direction * distance return step def fill_walk(self): while len(self.x_values)<self.num_points: x_step = self.get_step() y_step = self.get_step() if x_step== 0 and y_step == 0: continue next_x = self.x_values[-1] + x_step next_y = self.y_values[-1] + y_step self.x_values.append(next_x) self.y_values.append(next_y)
這是隨機漫步的程式碼,用到了matplotlib的包,
import matplotlib.pyplot as plt
from random_walk import RandomWalk
#只要程式處於活躍狀態,就不斷地執行模擬隨機漫步
while True:
rw = RandomWalk()
rw.fill_walk()
point_numbers = list(range(rw.num_points))
plt.scatter(rw.x_values,rw.y_values,c=point_numbers,cmap=plt.cm.Blues,
s=15)
plt.scatter(0,0, c="red", s=100) plt.scatter(rw.x_values[-1],rw.y_values[-1],c="red",s=100) plt.show() keep_running = input("Make another walk?(y/n):") if keep_running == "n": break