人工智能----读心术
实验要求:
利用二分查找算法的规则,实现猜数字的游戏
实验设计:
运行程序后,控制台显示提示信息,猜字游戏开始,请选择角色。如果选择猜题,则输入你随意猜的数字,然后会出现提示信息,所猜的数字是大了还是小了,你将有五次猜字的机会,机会用完,游戏结束,公布正确答案。
如果你选择出题,则输入你想让电脑猜的数字,然后点击回车,控制台会显示出电脑猜字的顺序以及猜字次数,最后电脑猜对数字,游戏结束。
实验难点
把二分算法的思想运用到该游戏中,即在设计电脑猜字时,需要让电脑首先猜所给范围的中值,如果猜错了,需要更新电脑的猜字范围,这就用到了循环语句中加入条件语句,当电脑猜的数字比实际值大的时候,需要将原范围的中值减1,在原最小值和原中值减1中继续猜字。反之,则需要将原范围的中值加1,在原中值加1和最大值中继续猜字。
实验代码
import random
def Search(list1, num):
min = 0 # 最小的下标
max = len(list1) - 1 # 最大的下标
i = 0 #记录电脑的猜测次数
while True:
i += 1
mid = (max + min) // 2 # 中间的下标每次向下取整
if num