我得写一个代码来计算酒鬼走路的路线和长度。
过度:
一个醉汉开始漫无目的地走,从一根灯柱开始。每走一步,他都会随机地走一步,无论是北、东、南还是西。那醉汉要走多远
从灯柱上走了N步?
为了模拟醉汉的步骤,我们可以用数字对每个方向进行编码,以便当随机变量等于0时,醉汉向北移动,如果随机变量等于1,醉汉向东移动,依此类推。
编写一个程序,它接受一个整数参数N,并模拟随机步行机的N步运动。在每一步之后,打印随机步行者的位置,将灯柱作为原点(0,0)。另外,打印与原点的最后平方距离。
到目前为止我已经想到:

import random
x = 0
y = 0
def randomWalk(N):
    for i in range (1, (N)):
        a = random.randint
        if a == 0:
            x = x+0
            y = y+1
            return (x, y)
            print (x, y)
        if a == 1:
            x = x+1
            y = y+0
            return (x, y)
            print (x, y)
        if a == 3:
            x = x+0
            y = y-1
            return (x, y)
            print (x, y)
        if a == 3:
            x = x-1
            y = y+0
            return (x, y)
            print (x, y)
print(randomWalk(input()))

但是当我测试这段代码时,没有输出。
我会感谢你的帮助。

最佳答案

这是个好的开始。
主要的问题是,您未能调用randint

    a = random.randint

这只会将a变成random.randint的别名。相反,应该是
    a = random.randint(0, 3)

同样,你要重复两次。
此外,将if a == 3:x设置为零应该在函数内部而不是外部完成。
最后,您的循环(顺便说一下,它是一个迭代太短)并不是真正的循环,因为您总是在第一次迭代期间y
这是给你的一个小拼图。弄清楚下面的工作原理:
dx, dy = random.choice([(-1, 0), (1, 0), (0, -1), (0, 1)])
x += dx
y += dy

关于python - Python:醉汉之行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26195815/

10-12 21:54