【python学习】递推算法案例分析
·
《中学生可以这样学Python》P180-181
使用递推法计算阶乘
#递推算法分析
## 使用递推法计算阶乘
def fac(n):
result=1
for i in range(1,n+1):
result *= i
return result
print(fac(6))
使用递推法计算组合数
## 使用递推法计算组合数
def Cni(n,i):
if not (isinstance(n,int) and isinstance(i,int)) and n>=i:
print('n和i必须为数字,并且n>=i')
return
result =1
Min,Max=sorted((i,n-i))
for i in range(n,0,-1):
if i>Max:
result *= i
elif i<=Min:
result /= i
return result
print(Cni(8,3))
使用递推算法求解爬楼梯问题
## 使用递推算法求解爬楼梯问题,假设一段楼梯共15个台阶,小明一步最多能上3个台阶,那么小明上这段楼梯一共有多少种方法
# f(n)=f(n-1)+f(n-2)+f(n-3)
# f(n-1)一种上楼 1
# f(n-1)两种上楼 2;1+1
# f(n-2)四种上楼 1+1+1;1+2;2+1;3
def climbStairs(n):
a=1
b=2
c=4
for i in range(n-3):
c,b,a=a+b+c,c,b
return c
print(climbStairs(15))
结果:
>>> %Run test8.py
720
56.0
5768
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)