尝试对粒子进行 2D 随机游走

计算科学 Python 随机数生成 随机游走
2021-12-20 14:13:31

我正在尝试对粒子执行二维随机游走,但没有得到想要的结果。产生的情节是线性情节,显然不应该如此。一维的类似代码给出了期望的结果。有人可以建议我在哪里犯错误吗?谢谢。

import numpy
import random
HEAD = 1
TAIL = 2



a = numpy.zeros((2, 50))
b = a.transpose()
ns = 50                        # no of steps

for step in range(ns):
    for _ in range(ns):
        coin = random.randint(1,2)
        if coin == HEAD:
            b[step,0]+=1  # one unit length to the right
        elif coin == TAIL:
            b[step,1]-=1   # one unit length to the left
1个回答

对于每个轴,您只在一个方向上移动。

coin_x = random.randint(1,2)

# Move on x axis
if coin_x == HEAD:
   b[step,0]+=1  
elif coin_x == TAIL:
   b[step,0]-=1   

# Move on y axis
coin_y = random.randint(1,2)
if coin_y == HEAD:
   b[step,1]+=1 
elif coin_y == TAIL:
   b[step,1]-=1  


```