我正在研究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