python中随机漫步的写法

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

猜你喜欢

转载自blog.csdn.net/qq_43552842/article/details/83545342