我刚刚开始学习 python,并且在打印 3 维随机游走的新位置时遇到问题。没有弹出错误,但是很明显打印的输出(x,y,z)是不合理的!当逐步模拟随机游走时,我假设每次只应更改 (x, y, z) 中的一个值。但输出中似乎没有。我正在尝试调试它,但仍然对确定真正的问题是什么感到困惑。
输出标题:
(0,-1,1)
(-1,0,1)
(-2,0,1)
(-2,1,2)
(-2,2,2)
(-2,2,3)
(-1,2,3)
(0,1,3)
我的动机:
这段代码的目的是模拟 3 步中随机游走的 N 步
方面。在每一步中,都会选择一个随机方向(北、南、东、西、上、下),并在该方向上采取大小为 1 的步长。然后打印新位置。起始位置是原点 (0, 0, 0)。
My code:
import pdb
import random # this helps us generate random numbers
N = 30 # number of steps
n = random.random() # generate a random number
x = 0
y = 0
z = 0
count = 0
while count <= N:
if n < 1/6:
x = x + 1 # move east
n = random.random() # generate a new random number
if n >= 1/6 and n < 2/6:
y = y + 1 # move north
n = random.random() # generate a new random number
if n >= 2/6 and n < 3/6:
z = z + 1 # move up
n = random.random() # generate a new random number
if n >= 3/6 and n < 4/6:
x = x - 1 # move west
n = random.random() # generate a new random number
if n >= 4/6 and n < 5/6:
y = y - 1 # move south
n = random.random() # generate a new random number
if n >= 5/6:
z = z - 1 # move down
n = random.random() # generate a new random number
print("(%d,%d,%d)" % (x,y,z))
count = count + 1
print("squared distance = %d" % (x*x + y*y + z*z))
环境:
Jupyter 笔记本、Windows 10、Dell XPS 13 中的 Python 3.5