生成遵循以下模式的冰雹序列:
如果x是偶数-> x / 2 如果x是奇数-> [a] x + [b]
其中a和b是整数值{0,...,10},允许a和b的121种可能组合。我需要列出序列是否对所有1000个x值收敛
我正在使用python解决问题,我是使用python进行编码的初学者,但是学习能力强,需要有关如何解决的指南
`for n in range(1,1001):
for i in a:
for j in b:
while j != 1 & i != 1:
print ("a:", i, "b:", j)
if j % 2 == 0:
j = j / 2
length = length + 1
else:
n = (n * j) + i
if n == 1:
print (n)
'
上面的方法可以运行,但是不能满足我的要求。它只是保持循环整数1而不会越过它
答案 0 :(得分:0)
我在您的代码中看到以下问题:
range
的用法,range
不接受list
作为参数,当for i in a:
为a
时,您应该使用list
,重新处理所有相应地for
。while
语法:您的:
中有太多while
,应该是一个:
(最后)if
与对应的else
没有对齐,请记住,在Python语言中缩进至关重要。j = j / b
将产生错误-您无法将int
除以list
n
,因此n = (n * a) + 1
和其他所有带有n
的行都会产生错误请记住,我的问题清单可能不完整
答案 1 :(得分:0)
'a = [0,1,2,3,4,5,6,7,8,9,10] b = [0,1,2,3,4,5,6,7,8,9,10]
对于范围(1,1001)中的n:
对于我在:
对于b中的j:
而j!= 1&i!= 1:
打印(“ a:”,i,“ b:”,j)
如果j%2 == 0:
j = j / 2
长度=长度+ 1
其他:
n =(n * j)+ i
如果n == 1:
打印(n)'
更新...我希望仍然能够理解它何时收敛并且不会移动到下一个值