gpt4 book ai didi

python - 在 Python 中模拟随机游走

转载 作者:太空宇宙 更新时间:2023-11-04 07:57:28 25 4
gpt4 key购买 nike

我正在使用 Python 3。我下面的代码试图模拟一个 random walk 的 N 个步骤。在 3 个维度。在每一步,选择一个随机方向(北、南、东、西、上、下),每个方向的概率为 1/6,并且在该方向上采取大小为 1 的步长。然后打印新位置。起始位置是原点 (0,0)。

即使没有错误消息,代码也不起作用。我们应该在 x、y 或 z 方向移动一步。但是,在输出中,我看到有时我根本不动,或者有时我朝多个方向移动。

这是我的代码:

import random

N = 30

n = random.random()

x = 0
y = 0
z = 0
count = 0

while count <= N:

if n < 1/6:
x = x + 1
n = random.random()
if n >= 1/6 and n < 2/6:
y = y + 1
n = random.random()
if n >= 2/6 and n < 3/6:
z = z + 1
n = random.random()
if n >= 3/6 and n < 4/6:
x = x - 1
n = random.random()
if n >= 4/6 and n < 5/6:
y = y - 1
n = random.random()
if n >= 5/6:
z = z - 1
n = random.random()

print("(%d,%d,%d)" % (x,y,z))
count = count + 1

print("squared distance = %d" % (x*x + y*y + z*z))

你认为我可以怎样解决这个问题?

非常感谢。

最佳答案

你应该使用 elif 而不是那么多 if。每次评估 if 时,n 的值都会发生变化,然后可能符合下一个 if。

关于python - 在 Python 中模拟随机游走,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46393491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com