算法第三章作业

1.对动态规划算法的理解

  动态规划算法是一个将待求解问题分解为若干子问题,通过求解子问题的解得到原问题的解的算法(与分治法有点类似)。它是解决多阶段决策过程最优化问题的一种方法,可以把一个n维最优化问题转化为n个一维最优化问题来求解。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。

 

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

  编程题1:主要思想是将原数组a1通过排序变成有序数列a2,再求a1和a2的LCS。因此递归方程为LCS的递归方程:c[i][j] = max{c[i][j-1], c[i-1][j]}. i,j>0;xi!=yi。

  编程题2:c[i][j] = min {c[i][k]+c[k][j]}。

 

3.结对编程的情况:

  通过结对编程的方式,完成任务的效率得到提升是一方面,对于一些思维上的误区也能得到快速纠正。自己在帮助队友纠正错误的同时,自己的一些漏洞也能及时发现。最重要的是从以往做作业的枯燥无味中解放出来,两个人有说有笑,说话又好听,不会觉得编程是一件无聊的事情了。

posted @ 2018-11-07 20:30  wanderlust  阅读(149)  评论(0编辑  收藏  举报