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

不使用列表实现二分法猜数字算法切换反馈时返回重复值问题

问题原因

代码中对用户反馈的条件判断逻辑被重复编写了两次,每次输入一次反馈会连续触发两次猜测值和边界的更新,直接破坏了二分法的区间收缩逻辑,这是交替输入高低反馈后数值不变的核心原因。

修正方案
  • 删除重复的条件判断块,每个用户反馈仅执行一次更新
  • 调整更新顺序为「先收缩边界→再计算新的猜测值」,符合标准二分法实现逻辑
  • 避免使用Python内置函数名min、max作为自定义变量名,防止潜在冲突
修正后代码
upper = int(input("请输入最大值:"))
lower = int(input("请输入最小值:"))
proposition = (lower + upper) // 2
print(proposition)
reponse = ""
while reponse != "juste":
    reponse = input("猜测值是过高、过低还是正确?请输入 tropgrand/troppetit/juste:")
    if reponse == "tropgrand":
        # 猜测过高,收缩上边界
        upper = proposition - 1
        proposition = (lower + upper) // 2
        print(proposition)
    elif reponse == "troppetit":
        # 猜测过低,收缩下边界
        lower = proposition + 1
        proposition = (lower + upper) // 2
        print(proposition)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:15:04