算法第五章作业
1、你对回溯算法的理解。
答:回溯法的简单理解有点像遍历算法,利用回溯法要先通过深度优先的方式找到解空间,然后利用约束函数进行剪枝,以此比较出最合适的解。
2、请说明“子集和”问题的解空间结构和约束函数(2分)
答:因为求的是子集的和,所以解空间应该为全部子集,即:n!
约束函数:从第一个元素开始,将这个元素加入子集当中,用sum记录子集的和的大小并与c进行比较,相等就输出子集,sum>c就回溯到这个元素,sum的值减去这个元素的值,并舍弃这个元素,一直重复,知道第n个元素。
3、请说明在本章学习过程中遇到的问题及结对编程的情况(1分)
答:回溯法关键在于怎么找到对应的约束函数来进行剪枝,同时也要怎样理解这个约束函数并利用代码来实现它。这个章节的题目相比都比较难,虽然老师课堂上也有讲过,但当时能懂,过后自己再看依然会有一定的难度,通过结对与伙伴讨论问题,能让自己对这个方法更加理解。