4-4课:用Python小蟒蛇编写一个小游戏

本文介绍了如何使用Python的二分查找算法编写一个猜数游戏的攻击者辅助程序。通过二分查找策略,程序可以在10次内猜出1-1000范围内的目标数。文章详细解释了代码实现过程,包括输入输出的控制和用户输入的合法性检查,并展示了程序运行示例。最后提出思考题,探讨在更大规模的猜数游戏中,二分查找的适用范围。
摘要由CSDN通过智能技术生成

猜数游戏与二分查找

还记得猜数游戏吗?之前的问题是:如果你是攻击者,你能保证在10次(含)之内猜出对方的数字吗?

因为$2^{10} = 1024 > 1000$, 所以如果运用二分查找的话,我们作为攻击者是肯定可以赢得比赛的。

实现1-1000数列的二分查找

既然二分查找适用于猜数游戏,那让我们先套用一下上节课学习的二分查找算法实现代码,来实现以下1-1000数列的二分查找。

代码如下:

arr = list(range(1, 1001)) # 生成一个List,里面顺序存储着1-1000这一千个元素

tn = 635  # 可以随便改

low = 0
high = len(arr) - 1

while (low <= high):
    m = int((high - low) / 2) + low

    if (arr[m] == tn):
        # 把打印出目标数所在的位置下标改成直接打印出目标数
        print("Succeeded! The target number is: ", arr[m]) 
        break
    else:
        if (arr[m] < tn):
            low = m + 1
        else:
            high = m - 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶锦鲤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值