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

如何在Python猜数字程序中用二分查找替代终端手动输入猜数

猜数字程序自动求解实现方案

原参考代码问题修正

原参考代码存在两处可运行性错误,需先调整:

  • random模块无ranNum方法,正确的随机数生成方法为randint
  • 比较逻辑中引用的变量v未定义,应为当前猜测值g

自动求解实现思路

采用二分查找算法实现自动定位目标数字,是当前场景下的最优解法:对于0~999的数字范围,最多仅需10次猜测即可命中,远高于随机猜测效率。
核心逻辑步骤:

  • 初始化查找边界:最小可能值low = 0,最大可能值high = 999
  • 每次取当前范围的中间值作为猜测值
  • 根据偏大/偏小的反馈调整边界,缩小查找范围,直到命中目标数字

完整可运行代码

from random import randint

# 生成0~999范围内的随机目标数,如需调整范围可修改参数
target = randint(0, 999)
# 初始化二分查找边界
low = 0
high = 999
guess_times = 0

while True:
    guess_times += 1
    # 取当前区间中间值作为猜测值
    current_guess = (low + high) // 2
    print(f"第{guess_times}次猜测:{current_guess}")

    if current_guess == target:
        print(f'恭喜猜中!总猜测次数:{guess_times}')
        break
    elif target < current_guess:
        print("偏小")
        # 目标值更小,调整上边界
        high = current_guess - 1
    else:
        print("偏大")
        # 目标值更大,调整下边界
        low = current_guess + 1

运行说明

  • 代码运行后无需任何手动输入,将自动完成全流程猜测,直到命中目标
  • 若需要调整目标数字的生成范围,同步修改randint的参数和low/high的初始值即可
  • 示例代码已将提示改为中文,如需保留英文提示,替换对应print内容即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:00:06