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

求助:如何用Python实现自动查找随机数的高效程序?

用二分法高效查找随机数a

你的代码逻辑绕且冗余,没正确维护查找范围,用二分查找能简洁高效解决问题——因为我们明确知道a的范围是0到50,每次取当前范围的中间值对比,就能快速缩小范围直到找到目标数。

优化后的代码

import random

# 生成目标随机数
a = random.randint(0, 50)
# 初始化查找范围的上下界
low = 0
high = 50

while True:
    # 取当前范围的中间值作为b
    b = (low + high) // 2
    if b == a:
        print(f"找到随机数了!a = {a}")
        break
    elif b > a:
        # b比a大,说明a在更小的区间,调整上界
        high = b - 1
    else:
        # b比a小,说明a在更大的区间,调整下界
        low = b + 1

说明

  • 这个逻辑是标准的二分查找,最多6次循环就能找到目标(因为2^6=64>50),效率远高于你原来的写法。
  • 如果一定要用statistics.mean,可以把b = (low + high) // 2改成b = int(statistics.mean([low, high])),但整数除法更直接高效。
  • 你原来的代码问题在于没有维护查找的上下边界,每次盲目取0和b的均值,逻辑混乱,容易走无效步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 17:50:33