函数递归与二分法(python3入门)

Posted 名叫蛐蛐的喵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数递归与二分法(python3入门)相关的知识,希望对你有一定的参考价值。

 1 import sys
 2 
 3 print(sys.getrecursionlimit())  # 查询递归保护限制次数
 4 
 5 # 函数递归:在调用函数的过程中又 直接或者间接的调用该函数本身,称之为函数的递归调用
 6 
 7 # 函数递归必须满足:
 8 # 1 必须有一个明确的结束条件
 9 # 2 每进入下一层递归,问题的规模都应该有所减少
10 
11 # 由上述两个条件可以推导出递归应该有两个明确的阶段:
12 # 1 回溯:一层一层的递归调用下去
13 # 2 递推:在某一层结束掉递归,开始往回一层层的返回
14 
15 
16 # 遍历打印li1的所有值
17 li1 = [1, [2, [3, [4, [5, [6, [7, ]]]]]]]
18 
19 
20 def test(a):
21     for i in a:
22         if type(i) is list:
23             return test(i)
24         print(i)
25 
26 
27 test(li1)
28 
29 
30 # 在nums列表中寻找自定义的值(使用二分法)
31 nums = [11, 13, 21, 31, 43, 101, 221, 302, 339, 443]
32 
33 
34 def ttt(l, find_num):
35     n = len(l) // 2
36     if l is not None:
37         return print(not exist)
38     if l[n] > find_num:
39         print(这个值太大了,值应该在左边)
40         ttt(l[:n], find_num)
41 
42     elif l[n] < find_num:
43         print(这个值太小了,值应该在右边)
44         ttt(l[n + 1:], find_num)
45     else:
46         print(就是这个值)
47         print(l[n])
48 
49 
50 ttt(nums, find_num=444)
51 
52 
53 #有5个人,第一个说比第二个大两岁,第二个说比第三个大两岁,以此类推,第五个说‘我是18岁‘,求第一个人的年龄
54 def age(n):
55     if n == 1:
56         return 18
57     return age(n-1)+2
58 
59 res = age(5)
60 print(res)

 

以上是关于函数递归与二分法(python3入门)的主要内容,如果未能解决你的问题,请参考以下文章

函数递归与二分法

函数的递归调用与二分法

python--函数之递归与二分法

递归函数与二分查找算法

python 3 递归调用与二分法

what' the python之递归函数与二分算法