我得写一个代码来计算酒鬼走路的路线和长度。
过度:
一个醉汉开始漫无目的地走,从一根灯柱开始。每走一步,他都会随机地走一步,无论是北、东、南还是西。那醉汉要走多远
从灯柱上走了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/