我正在研究Code Abbey問題23,Neumann的隨機生成器。目標是使用給定算法從列表中的每個值生成一系列隨機數,並繼續,直到算法生成的數字與我們開始的數字相同。然後,打印達到循環所需的通過次數。我似乎無法讓我的代碼工作;我很確定這是與while循環有關的。我將不勝感激任何幫助,更重要的是對我做錯了什麼的解釋。Neumann的隨機生成器 - Python 3
這裏是我的代碼:
cases = int(input())
values = [int(x) for x in input().split()]
def random_number(values):
for value in values:
random = pow(value, 2)
passes = 0
equal = False
while not equal:
if len(str(random)) < 8:
random = int(str(random).zfill(8))
random = (random // 100) % 10000
passes += 1
if random == value:
equal = True
else:
random = pow(random, 2)
print(passes, end=' ')
random_number(values)
,這裏是我的輸入:
12
6239 8935 4715 8785 9737 9251 3251 3544 9631 4655 903 7589
你還沒有告訴我們問題是什麼。 – 2014-10-04 09:47:05
對不起 - 問題是,我創建了一個無限循環。但我無法弄清楚在哪裏。 – 2014-10-04 09:48:40