算法第三章作业

 

1. 你对动态规划算法的理解(2分)

  动态规划算法其实与分治法有相通性,都是将待解决的问题分解成若干子问题,先求子问题,再结合这些子问题的解得到原问题的解。不过,不同之处在于,适用动态规划算法的问题,经分解后得到的子问题往往不是相对独立的。用分治法来解决问题,往往有些子问题会被重复计算了许多次。而动态规划算法的基本思想就是不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中,这样便可以避免大量的重复计算,从而得到多项式时间算法。

  动态规划的基本步骤为:1、找出最优解的性质,并刻画其结构特征;2、递归地定义最优值;3、以自底向上的方式计算最优值;4、根据计算最优值时得到的信息,构造最优解。

  不过有时最好也可以避免递归,其步骤为:1、确定表的维数;2、确定填表范围;3、确定按什么顺序填表(自左向右/自下而上)。

2. 分别列出编程题1、2的递归方程(2分)

3. 说明结对编程情况(1分)

  结对编程可以及时进行更好的想法的提出与补充,也能帮助自己更好的理解算法的原理,明白其计算过程。我们通常是在周一毛概课、周三笔译课下课后,利用吃饭前的一段时间进行讨论和编程答题。

posted on 2019-10-30 01:09  WeN。  阅读(128)  评论(0编辑  收藏  举报