我有以下代碼意想不到輸出:這個隨機行走代碼裏面的錯誤是什麼?
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你的代碼看起來很相似,這可能是爲一組學生留下的一些任務嗎?只是問,因爲這幾分鐘前剛發佈。 –