模拟 Collatz 猜想的代码将 1 显示为偶数
Code to simulate Collatz Conjecture is showing 1 as an even number
我的代码如下
output_even = "Even: "
output_odd = "Odd: "
if varnum % 2 == 0:
varnum /= 2
print(output_even, varnum)
time.sleep(0.1)
elif varnum % 2 != 0:
varnum *= 3
varnum += 1
print(output_odd, varnum)
time.sleep(0.1)
输出(整数 5):
单数: 16
甚至:8.0
甚至:4.0
甚至:2.0
偶数:1.0
猜想未解
我知道一个不应该是偶数。但由于某种原因,它被列为偶数,如输出所示,原始数字为 5.
编辑:带有代码的完整循环希望能得到额外的说明
while varnum != 1:
if varnum % 2 == 0:
print(output_even, varnum)
varnum /= 2
time.sleep(0.1)
elif varnum % 2 != 0:
print(output_odd, varnum)
varnum *= 3
varnum += 1
time.sleep(0.1)
if varnum == 1:
print("Conjecture not solved")
else:
print("Conjecture solved")
不过 2 是偶数。
您将 varnum
除以 2,然后打印该除法的结果。
尝试交换算术和打印操作。
我的代码如下
output_even = "Even: "
output_odd = "Odd: "
if varnum % 2 == 0:
varnum /= 2
print(output_even, varnum)
time.sleep(0.1)
elif varnum % 2 != 0:
varnum *= 3
varnum += 1
print(output_odd, varnum)
time.sleep(0.1)
输出(整数 5):
单数: 16
甚至:8.0
甚至:4.0
甚至:2.0
偶数:1.0
猜想未解
我知道一个不应该是偶数。但由于某种原因,它被列为偶数,如输出所示,原始数字为 5.
编辑:带有代码的完整循环希望能得到额外的说明
while varnum != 1:
if varnum % 2 == 0:
print(output_even, varnum)
varnum /= 2
time.sleep(0.1)
elif varnum % 2 != 0:
print(output_odd, varnum)
varnum *= 3
varnum += 1
time.sleep(0.1)
if varnum == 1:
print("Conjecture not solved")
else:
print("Conjecture solved")
不过 2 是偶数。
您将 varnum
除以 2,然后打印该除法的结果。
尝试交换算术和打印操作。