当前位置: 首页 > news >正文

吕梁网站建设kuyiso青柠影院免费观看电视剧高清8

吕梁网站建设kuyiso,青柠影院免费观看电视剧高清8,淘宝网站建设方案毕业设计,东莞黄江建设银行网站动态规划算法简介 动态规划#xff08;Dynamic programming#xff09;是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的#xff0c;通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。 动态规划常常适用于有重叠子问题和最优子结构性质的问题…动态规划算法简介 动态规划Dynamic programming是一种在数学、管理科学、计算机科学、经济学和生物信息学中使用的通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。 动态规划常常适用于有重叠子问题和最优子结构性质的问题动态规划方法所耗时间往往远少于朴素解法。 动态规划算法是一种常用的优化算法用于解决一些具有重叠子问题和最优子结构的问题例如背包问题、最长公共子序列、矩阵连乘等。动态规划算法通过将问题划分为若干个重叠的子问题并保存子问题的解以避免重复计算从而提高算法效率。 动态规划算法的基本思想是将一个大问题分解成若干个小问题求解每个小问题的最优解并保存下来。通过组合每个小问题的最优解得到大问题的最优解。动态规划算法通常使用递归或迭代的方式实现。 动态规划算法是一种非常有用的算法设计技术它适用于许多实际问题的求解。在实际应用中我们需要根据问题的特点选择合适的动态规划算法并注意避免时间和空间复杂度的过度增长。 动态规划算法步骤 定义问题的状态通常使用一个或多个变量来表示问题的状态例如背包问题中的剩余容量、最长公共子序列问题中的两个字符串的索引等。 定义状态转移方程根据子问题之间的关系定义状态转移方程。这个方程通常是一个递推式用于计算当前状态的最优解。 初始化将初始状态的最优解保存下来通常是一个边界条件。 递推求解使用状态转移方程求解每个子问题的最优解并保存下来。 求解大问题根据子问题的最优解组合得到大问题的最优解。 动态规划算法应用 背包问题将一些物品放入容量有限的背包中使得所放物品总价值最大。最长公共子序列问题找到两个字符串中最长的相同子序列。计算编辑距离将一个字符串转换为另一个字符串所需的最少操作数。矩阵链乘问题将一堆矩阵相乘找到最小的计算次数。找零钱问题找到最少的硬币数以凑出给定的金额。最大子序和问题找到一个序列中连续的子序列使得子序列的和最大。 动态规划算法示例 背包算法Knapsack algorithm是一种动态规划算法用于在给定的一组物品中选择一些物品装入背包使得装入的物品总重量不超过背包容量同时总价值最大。该问题被称为背包问题Knapsack problem。 背包问题有两种形式01背包和完全背包。01背包问题中每个物品最多只能选择一次而在完全背包问题中每个物品可以选择任意多次。 算法思路 创建一个二维数组dp其中dp[i][j]表示前i个物品放入容量为j的背包中所能获得的最大价值。初始化dp数组的第一行和第一列为0因为当背包容量为0或没有物品可选时最大价值都为0。遍历物品列表并在dp数组中填充每个物品的最大价值。对于第i个物品如果它的重量小于等于当前背包容量j则可以选择放入背包或不放入背包。如果选择放入那么背包内的可选物品为前i-1个物品背包容量为j-w[i]价值为dp[i-1][j-w[i]] v[i]。如果选择不放入那么背包内的可选物品为前i-1个物品背包容量为j价值为dp[i-1][j]。选取两者中的最大值作为dp[i][j]的值。最终dp[n][m]即为所求的最大价值。 实现代码Java public static int knapsack(int[] weight, int[] value, int W) {int n weight.length;int[][] dp new int[n 1][W 1];for (int i 0; i n; i) {for (int j 0; j W; j) {if (i 0 || j 0) {dp[i][j] 0;} else if (weight[i - 1] j) {dp[i][j] Math.max(dp[i - 1][j], dp[i - 1][j - weight[i - 1]] value[i - 1]);} else {dp[i][j] dp[i - 1][j];}}}return dp[n][W]; }其中weight是物品的重量数组value是物品的价值数组W是背包的容量。 动态规划算法对比 动态规划算法和分治算法都是常用的算法设计技术但它们之间有一些区别。 相同点动态规划算法和分治算法都是将一个大问题分解成若干个小问题然后求解每个小问题的解最后将所有小问题的解组合起来得到大问题的解。 不同点动态规划算法和分治算法的主要区别在于它们对子问题的处理方式。 1动态规划算法将子问题的解保存下来以避免重复计算。在求解一个问题时动态规划算法通常需要先求解其子问题然后将子问题的解保存起来最后利用子问题的解求解大问题。动态规划算法通常适用于具有重叠子问题和最优子结构的问题。 动态规划算法通常适用于求解最优化问题例如背包问题、最长公共子序列问题、矩阵连乘问题等。 2分治算法则是将子问题分解成独立的部分然后对每个部分分别求解最后将各个部分的解组合起来得到大问题的解。分治算法通常适用于具有相互独立的子问题的问题。 分治算法通常适用于分布式计算、排序和查找等问题例如归并排序、快速排序、二分查找等。
http://www.hkea.cn/news/14505907/

相关文章:

  • 手机版网站有必要吗广州番禺钟村
  • 做的不错的网站动漫制作专业介绍
  • js网站模板免费下载营销策划方案书
  • app网站平台搭建网站建设用什么软件
  • 资深的家居行业网站模板公司官网是通过什么编辑
  • 狠狠做网站网页设计师工作室
  • html5用什么软件怎么做网站的排名优化
  • 网站的ci设计怎么做网站怎么做seo_
  • 网站吸引力整合营销传播工具有哪些
  • 邢台企业手机网站建设网站设计师薪资
  • 买服务器的网站wordpress 系统环境
  • 网站建设与维护本科教材江苏海宏建设工程有限公司网站
  • 免费直播网站网站开发周期价格
  • 企业网站备案意义wordpress第三方登录组件
  • 网站制作合同模板网络的推广方式有哪些
  • 建立网站有什么作用注册公司流程和费用是多少
  • 梅州生态建设有限公司网站网站建设案例好么
  • wordpress可视化建站建设银行网站开通查询密码
  • 设计师个人网站建设苏醒主题wordpress
  • 网站建设需要注意什么 知乎网站代运营公司
  • 蓝德网站建设sem优化技巧
  • 汕头网站建设哪家好网站建设功能定位怎么写
  • 上海网站 建设深圳包装设计公司有哪些呢
  • 常州转化率网站建设公司怎么样深圳住 建设局网站首页
  • 网站外包怎么做学校网站设计的作用
  • 网站设计客户对接流程多功能创意产品设计
  • 哪里制作网站好小程序商城哪家好又便宜
  • 广东网站设计建筑工程招标网
  • 上海 网站备案拍照seo针对网站做策划
  • 公司的网站如何做推广的几种方式