所以在维基百科冲浪的时候,我无意中发现了Collatz猜想,所以我决定编写一个简单的python程序,
while True:
x = int(input("Enter a number: "))
n=0
while True:
if (x % 2) == 0:
x = x/2
n += 1
print(x)
else:
x = 3*x +1
n+=1
print(x)
if x == 1:
break
print("N = %d" %(n))起初我玩随机数,然后我决定测试维基百科文章所代表的一些更大的数字。在维基百科的“示例”部分,这个程序一直运行到75,128,138,247,之前它与步骤数完全匹配,然后随机地对N(步骤数)说"512“。我只是不明白为什么。有人能帮忙吗?
发布于 2018-11-23 04:34:57
浮点数除法可能会导致问题(注意输出作为浮点数),所以在整数中工作:
变化
x = x/2 到整数除法(您的print对应数到Python3,因此它是可用的)
x = x // 2https://stackoverflow.com/questions/53440661
复制相似问题