假设有一个游戏是让你在1-100之间猜一个数:如果猜对了,那么显示你猜对了;否则继续猜,并提示猜大了还是猜小了,直到猜对为止;最后显示猜的总次数。用二分法python
时间: 2024-12-18 07:18:11 浏览: 18
在Python中,你可以使用二分查找算法(Binary Search)来创建这样一个猜数字的游戏。二分法通常用于已排序数组,但它在这里的应用稍微有所不同,因为我们的目标是在一个固定的范围内找到一个随机选择的数。下面是一个简单的实现:
```python
import random
def guess_number():
# 生成一个1到100之间的随机数
secret_num = random.randint(1, 100)
# 初始化最低猜测值和最高猜测值
low = 1
high = 100
total_attempts = 0
while True:
# 计算中间值作为猜测
mid = (low + high) // 2
total_attempts += 1
# 检查猜测结果
if mid == secret_num:
print(f"恭喜,你猜对了!总共尝试了{total_attempts}次。")
break
elif mid < secret_num:
print("猜小了,请再试一次。")
low = mid + 1
else:
print("猜大了,请再试一次。")
high = mid - 1
guess_number()
```
在这个游戏中,玩家不断缩小搜索范围,直到找到正确的数字。每次迭代都会检查当前的中间值是否等于目标数,如果不是,则根据比较结果调整范围。
阅读全文