递归和动态规划(python)

发布时间:2024-11-24 09:31

合理规划税务递延计划 #生活知识# #财务规划#

最新推荐文章于 2024-09-23 10:08:29 发布

松烟入墨 于 2019-05-27 12:51:32 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

        暴力递归: 1,把问题转化为规模缩小了的同类问题的子问题 2,有明确的不需要继续进行递归的条件(base case) 3,有当得到了子问题的结果之后的决策过程 4,不记录每一个子问题的解
        动态规划: 1,从暴力递归中来 2,将每一个子问题的解记录下来,避免重复计算 3,把暴力递归的过程,抽象成了状态表达 4,并且存在化简状态表达,使其更加简洁的可能

1、求n!的结果

        想法是转换成fact(n)=n*fact(n-1)

def factorial(n):

if n == 1:

return 1

else:

return n*factorial(n-1)

if __name__ == '__main__':

n = int(input())

print(factorial(n))

2、汉诺塔问题   打印n层汉诺塔从最左边移动到最右边的全部过程

A,B,C三个圆柱,分别为初始位,过渡位,目标位,设A柱为初始位,C位为最终目标位

(1)将最上面的n-1个圆盘从初始位移动到过渡位

(2)将初始位的最底下的一个圆盘移动到目标位

(3)将过渡位的n-1个圆盘移动到目标位

对于递归算法中的嵌套函数f(n-1)来说,其初始位,过渡位,目标位发生了变化
 

网址:递归和动态规划(python) https://www.yuejiaxmz.com/news/view/231739

相关内容

python编程——006实战递归
RL笔记:动态规划(1): 策略估计和策略提升
动态规划算法在生活中的应用
动态规划的应用
python基于天气预测的生活规划系统的设计与实现
python递推法 p=(x、y)=x
旅行商问题(动态规划方法,超级详细的)
动态规划之最大子段和问题
递归思想——关于递归的多个例子详解
动态规划在实际生活中的应用

随便看看