python二分法小程序原理研究

用python写sql注入脚本时候,二分法是必须用到的知识,所以为了理解里面的弯弯绕,首先写了一个简单二分法模型以供后续研究理解

写的这个程序就是输入一个0-126范围的数字,通过二分法能找到你输入的是多少

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# -*- coding=utf-8 -*-

#二分法判断函数 Dichotomy(二分法)
def Dichotomy(num):
low = 0
high = 126
# print("--------")
while low <= high:
mid = (low + high)/2
# print("本次循环中间值",mid)
if num > mid:
low = mid + 1
# print("low",low)
else:
high = mid - 1
# print(high)
# print("-------区间范围:(",low,"-",high,")\n")
mid_num = int((low + high + 1)/2)

#范围在0-126之间的都会返回整数浮点型值,比如8.0,为了方便转化为整形
# print(int(mid_num))

return mid_num


input_num = int(input("请输入整形数值(0~126):"))

rt_is_num = Dichotomy(input_num)
print(rt_is_num)

代码里面的注释代码是可以取消注释以供理解程序每一次循环效果的,有助于理解,此代码仅供记录学习,过程不详细讲了,看不懂的好好理解下,勿喷!

mark