在Python中,可以使用随机数模块(random module)来模拟随机漫步。下面是一个简单的示例,演示如何创建一个名为RandomWalk的类,该类表示一个随机漫步的一系列点。
from random import choice
class RandomWalk:
"""Class to generate a random walk"""
def __init__(self, num_points=5000):
"""Initialize attributes of a walk"""
self.num_points = num_points
# All walks start at (0,0)
self.x_values = [0]
self.y_values = [0]
def fill_walk(self):
"""Calculate all the points in the walk"""
# Keep taking steps until the walk reaches the desired length
while len(self.x_values) < self.num_points:
# Decide which direction to go and how far
x_direction = choice([1,-1])
x_distance = choice([0,1,2,3,4])
x_step = x_direction * x_distance
y_direction = choice([1,-1])
y_distance = choice([0,1,2,3,4])
y_step = y_direction * y_distance
# Reject moves that go nowhere
if x_step == 0 and y_step == 0:
continue
# Calculate the next x and y values
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)
这个类有一个名为fill_walk()的方法,它根据随机步骤的规则创建一系列点。在这个基本示例中,步长是随机选择的1、2、3、4或0,方向是随机选择的水平、垂直或斜向。在这个基本示例中,该类表示的随机漫步包含5000个点,但实际上可以根据需要轻松