动态规划 —— 阶乘
2016-04-07 18:36
513 查看
def fact(n, memo): if n == 0: return 1 if n not in memo: memo = n*fact(n-1, memo) return memo
客户端(调用端):
if __name__ == '__main__': memo = {} print([fact(n, memo) for n in range(100)])
或者:
def fact(n, memo): if n not in memo: memo = n*fact(n-1, memo) return memo if __name__ == '__main__': memo = {0:1} print([fact(n, memo) for n in range(100)])
注:本例虽然有动态规划的形式(记忆体),却无动态规划的实质,不存在重叠子问题,自然也就没有最优子结构,仍属简单的递归求解。
相关文章推荐
- 有10箱产品,每箱有1000件,其中正品每件100克。其中有几箱是次品,每件次品比正品轻10克,问能否用秤只称一次,就找出哪几箱是次品?
- 396. [网络流24题]魔术球问题(简化版
- linux挂载windows共享文件夹
- tomcat中一个ip绑定多个域名
- 利用HttpListener创建简单的HTTP服务
- 电梯调度系统(界面由C图形库编绘)
- 常用的SQL-看看、练练--源自技术
- spring-jms/DefaultMessageListenerContainer配置
- Java基础学习第一天——JVM简介与环境变量配置
- 删除tableview的cell时 deleteRowsAtIndexPaths崩溃
- Codeforces Beta Round #7 B. Memory Manager 模拟题
- Nginx简易配置文件(二)(反向代理)
- xib命名注意事项--防止被其他控制器意外地 当做默认的 view了
- 成员介绍
- usb
- Hibernate No Session found for current thread异常分析
- ListView之BaseAdapter的用法简单案例(四)
- JAVA 获取进程PID
- CoAP Request and Response Rules
- 【步兵 c++】vector 的 去重