简单的随机游走

时间:2014-05-23 15:56:45

标签: python random

我无法生成类似于我在电子表格中使用的简单随机游走路径。如何编写代码,以便将每个步骤添加到上一步,以保持显示距离为零的“运行总计”?从零开始,加一步,加一步,减去一步将等于+1(0 + 1 + 1-1)。当然使用随机选择。

另外,有没有办法用Python3.4绘制图表?

import random

a = 0

trials = input('Trails : ')

while a < int(trials):

    a = a + 1                  # Simple step counter
    x = random.randint(-1,1)   # Step direction (-1, 0, +1)

    print(a,x)                 # Prints numbered list of steps and direction

2 个答案:

答案 0 :(得分:2)

这应该这样做(即保持运行总计) - 就绘图而言 - 您可能需要保留列表中每个步骤的总数,并使用另一个库(例如matplotlib)来绘制结果。

import random

a = 0
total = 0 # Keep track of the total 

trials = input('Trails : ')

while a < int(trials):

    a = a + 1                  # Simple step counter
    x = random.randint(-1,1)   # Step direction (-1, 0, +1)
    total += x                 # Add this step to the total

    print(a,x, total)          # Prints numbered list of steps and direction

答案 1 :(得分:0)

可以使用np.cumsum(np.random.randint(-1,2,10))计算作为随机步数的函数的位置。您可以使用

将其绘制为步数的函数
import numpy as np
import matplotlib.pyplot as plt

increment = np.random.randint(-1,2,10)
position = np.cumsum(increment)
plt.plot(np.arange(1, position.shape[0]+1), position)
plt.show()