我有以下代码的意外输出:
import random
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/3:
x = x + 1 # move east
n = random.random() # generate a new random number
if n >= 1/3 and n < 2/3:
y = y + 1 # move north
n = random.random() # generate a new random number
if n >= 2/3:
z = z + 1 # move up
n = random.random() # generate a new random number
print("(%d,%d,%d)" % (x,y,z))
count = count + 1
当我运行代码时,问题是:
- 代码输出显示 31 个坐标,比步数 (N) 变量多 1 个。
- 1 步的每次迭代应该只需要 1 步,但有时需要多步。
当我测试代码时,问题得到了保证。为了测试代码,我分配了 N = 1,并看到以下输出:
(-1,0,1) 这应该是最初的步骤,但它采取了多个步骤(x-1 和 z+1),怎么会发生这种情况?
(-2,0,1) 阶跃变量数 (N) = 1 但这是第二个输出,为什么显示?感谢您的帮助