Python模拟人猜数过程(折半查找)
2024-08-28 14:47:01
import random
# (0,1000)随机产生一个数
key = random.randint(1,1000)
# 用来统计猜的次数
count = 0 # 定义一个折半查找的函数
def BinSearch(array, key, low, high):
global count
mid = int((low+high)/2)
if key == array[mid]: # 若找到
count += 1
print("您总共猜了次数是:%d"%count)
print("恭喜您猜对了,答案是:" )
return array[mid]
if low > high:
return False if key < array[mid]:
print("小于猜的数")
count += 1
return BinSearch(array, key, low, mid-1) #递归
if key > array[mid]:
count += 1
print("大于猜的数")
return BinSearch(array, key, mid+1, high) if __name__ == "__main__":
# 给定一个列表
num_value_list = list(range(1, 1001))
# 通过折半查找,找到随机的数
ret = BinSearch(num_value_list, key, 0, len(num_value_list)-1)
print(ret)
最新文章
- BPM流程中心解决方案分享
- 一个简单的网站web项目的详解
- OC基础--Property
- KSFramework:集成U3D热重载框架 - README
- Java生成动态GIF图片
- 元组的cmp()内建函数
- IOS开发-跨域访问DWR方法
- SAP校园招聘笔试
- 如何运行 rpcz python example
- hdu5706-GirlCat
- 明天软软onsite
- hdu 1074 (状压dp)
- SPRING框架中ModelAndView、Model、ModelMap区别及详细分析
- Gym - 101628F Find the Inn dijkstra,读边时计算新权值
- php 抽象 继承 多态
- (zxing.net)二维码PDF417的简介、实现与解码
- 记录LNMP环境彻底删除绑定域名及网站文件夹/文件的过程
- APNS 证书生成注意事项
- vue起手式
- 了解委托(Delegate)