我有以下代码意想不到输出:这个随机行走代码里面的错误是什么?
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点的坐标,比步数1以上(N )变量。
- 1步骤的每次迭代应该只需要1步,但有时需要多个步骤。
当我测试代码时,问题得到了保证。要测试的代码,我分配N = 1,看见下面的输出:
(-1,0,1)这应该是初始步骤,但它采取多个步骤(包括X-1和z + 1),这怎么会发生?
(-2,0,1)步进变量数(N)= 1但是这是第二个输出,为什么显示? 感谢您的帮助
你逐行调试器会回答这一切与沉着。 – Bathsheba
http://stackoverflow.com/questions/39587461/random-walks-weird-outcome-in-python-3你的代码看起来很相似,这可能是为一组学生留下的一些任务吗?只是问,因为这几分钟前刚发布。 –