gpt4 book ai didi

python - 重复 if 语句

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

我的代码在 3D 空间中映射随机游走时遇到问题。这段代码的目的是模拟 3 维随机游走的 N 步。在每一步中,都会选择一个随机方向(北、南、东、西、上、下),并在该方向上采取大小为 1 的步长。这是我的代码:

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))

问题是我在每次迭代之间得到的不仅仅是一个步骤。我添加了注释以显示迭代之间的步骤差异。

这是输出的前 10 行:

(0,-1,0) #1 step  
(0,-2,0) #1 step
(1,-3,1) #4 steps
(1,-4,1) #1 step
(1,-3,1) #1 step
(1,-2,1) #1 step
(2,-2,0) #2 steps
(2,-2,0) #0 steps
(2,-2,0) #0 steps
(2,-1,0) #1 step

最佳答案

如果您从 if 语句中删除多个 n = random.random() 并在开始处替换为单个 n = random.random() while 循环然后每个循环只有一个步骤。

关于python - 重复 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46356238/

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