动态规划01--切钢条(2)
来源:互联网 发布:修改mysql最大连接数 编辑:程序博客网 时间:2024/05/19 08:01
带备忘录的自顶向下遍历
def memoized_cut_rod_aux(p, n, r): ''' 携带一张收益表, 减少重复计算 ''' if r[n-1]>=0: return [r[n-1], r] if n==0: return [0, r] else: q = 0 for i in range(1, n+1): sub_res = memoized_cut_rod_aux(p, n-i, r) sq = sub_res[0] r = sub_res[1] q = max(q, p[i-1]+sq) r[n-1] = q return [q, r]
进行时间对比
n = 25p = getp(n)r = [-1 for i in range(n)]s = time.time()q, r= memoized_cut_rod_aux(p, n, r)e = time.time()d = (e-s)s1 = time.time()q_normal = nr.cut_rod(p, n)e1 = time.time()d1 = (e1-s1)#print(r)print("normal method: %s %s" %(q_normal, d))print("memoized method: %s %s" %(q, d1))
#结果normal method: 400 0.0009999275207519531memoized method: 400 17.095400094985962
阅读全文
0 0
- 动态规划01--切钢条(2)
- 动态规划01--切钢条(1)
- 动态规划篇:钢条切
- 【算法导论】动态规划切钢条
- 动态规划算法--切钢条问题
- 算法导论:动态规划 切钢条问题
- 动态规划01-钢条切割问题
- 钢条切割-动态规划
- 切割钢条【动态规划】
- 动态规划-钢条切割
- 动态规划-钢条切割
- 动态规划-钢条切割
- 动态规划 钢条切割
- 钢条切割-动态规划
- 【动态规划】钢条切割
- 动态规划--钢条切割
- 动态规划----切割钢条
- 动态规划-钢条切割
- 【Android】TabLayout实践
- 画标注线段
- 苹果系统允许打开任何来源的应用
- 开启固定拨号FDN功能,发送信息时如何做FDN检测
- linux服务器mysql数据库设置collation_server编码
- 动态规划01--切钢条(2)
- Service 运行在主线程
- webstorm激活
- MariaDB AX开源分析解决方案
- linux学习 文件操作
- CentOS 7下配置hadoop 2.8 分布式集群
- 如何写一个播放器-解析MNVideoPlayer(二)
- ui selection dropdown 的下拉菜单又失灵了!
- mysql锁(九)innodb下的记录锁,间隙锁,next-key锁