Python中怎么实现动态规划
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,今天就跟大家聊聊有关Python中怎么实现动态规划,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。动态规划动态规划的关键:在于大问题的最优解由对
千家信息网最后更新 2026年11月02日Python中怎么实现动态规划针对博物馆大盗问题,将问题函数化: m(i, w)
今天就跟大家聊聊有关Python中怎么实现动态规划,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
动态规划
动态规划的关键:在于大问题的最优解由对应的更小规模问题的最优解递推而来
i(1<=i<=5):表示前i个宝贝
w(1<=w<=20):重量不超过w
m(i, w) :前i个宝贝总重不超过w的最大价值是多少
函数的意义:前1个宝物重量不超过w的最大价值,前2个宝物重量不超过w的最大价值……前5个宝物重量不超过w的最大价值。问题的规模逐渐增大,从最小规模一直推导到目标规模的最优解
动态规划:从最小规模最优解推导到目标规模问题的最优解
m(i, w)要得到最大价值,那它如何计算呢?
既然规模是从小到大,那么就要讨论第i个宝贝能否加入到上一个规模中
若第i个宝贝太重了加不进去,则m(i, w)=m(i-1, w)
若第i个宝贝可以加进去,则m(i, w)=m(i-1, w-wi)+vi
从上述两个结果中取较大的
算法设计:两重循环,i从1加到5的同时w从1加到20
过程中你会发现后面的m(i, w)可以通过前面已经计算过的结果直接得到


递归解法
递归的方法要显得自然通俗一点
基本结束条件:宝贝为空或背包承重为
递归最大的问题在于会有许多的重复,故需要记录中间结果
规模减小方向:从宝物集合中逐个去掉(偷走)宝物,递归调用
tuple()方法
用于将列表、区间等转换为元组
a = [1, 2]b = {'1':2, '2':3}print(tuple(a))print(tuple(b))(1, 2)('1', '2')看完上述内容,你们对Python中怎么实现动态规划有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
规模
最大
宝贝
问题
动态
规划
价值
宝物
重量
递归
内容
结果
最小
函数
方法
目标
较大
通俗
从小到大
两个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云南咖啡
互联网属科技
互联网最新的科技
麻工互联网科技
万易互联网科技有限公司
互联网金融科技平台
衡水科技产业互联网平台
天速互联网络科技有限公司
江阴互联网智能科技产品进口
乌鲁木齐新华智原互联网科技学校
上海科技产业互联网平台
小米互联网科技园入驻
上海钢联属于互联网科技股吗
21世纪互联网科技成就
富国互联网科技002692
郑州欣桑互联网科技有限公司
2021世界互联网领先科技成果发布
宁波跨境商互联网科技有限公司
萌小萌互联网科技河南有限公司
上海互联网科技园景观
互联网加科技
上海喔噻互联网科技有限公司
碳银互联网科技有限公司
顺玮阁互联网科技
互联网科技汛
和信科技工业互联网
中国互联网十大科技股排名
互联网科技如何创业
互联网科技股为什么大涨
2021世界互联网领先科技成果发布