You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python判断偶数方法及Collatz猜想程序异常求助

修复Collatz猜想程序的偶数判断问题

你的代码核心问题出在奇偶判断的对象错误,同时还有两个细节问题导致程序异常:

问题分析

  • 你一直用original_collatz来判断奇偶,但这个变量只有在序列走到1时才会递增,循环过程中它的值是固定的(初始为7,后续递增后也保持不变),完全没有跟踪当前正在处理的collatz值,导致程序始终按照初始数的奇偶执行分支,忽略了后续数的偶数判断。
  • 使用/做除法会得到浮点数(比如4/2=2.0),最终序列会停在1.0,无法触发collatz == 1的结束判断。
  • 当序列走到1、original_collatz递增后,没有重置collatz为新的初始值,导致后续会重复处理1→4→2→1的循环。

修复后的代码

# collatz program
import time

original_collatz = 7
collatz = original_collatz
new_collatz = collatz

while True:
    # 改为判断当前collatz的奇偶
    if collatz % 2 == 1:
        new_collatz = (collatz * 3) + 1
    elif collatz % 2 == 0:
        # 用整数除法//保证结果为整数
        new_collatz = collatz // 2

    collatz = new_collatz
    print(collatz)

    if collatz == 1:
        print('woo hoo')
        original_collatz += 1
        # 重置collatz为新的初始值,开始下一个序列
        collatz = original_collatz
        new_collatz = collatz

    time.sleep(1)

关键修改点

  1. 将奇偶判断的变量从original_collatz替换为collatz,确保每次迭代判断的是当前正在处理的数。
  2. 用//整数除法替代/,避免产生浮点数,保证collatz == 1的判断能正常触发。
  3. 当序列走到1时,重置collatz和new_collatz为递增后的original_collatz,开始处理下一个数的Collatz序列。

内容的提问来源于stack exchange,提问作者rhodrhid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 18:10:49