作业帮 > 数学 > 作业

一个算法设计题,求助各位大侠,急!谢谢!

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/10 09:09:35
一个算法设计题,求助各位大侠,急!谢谢!
一张地图分成七个区,请用不多于四种颜色对这七个区域进行着色,使得有公共界的区域不同色,给出实现算法.
回溯法就可以了.
先抽象成数学问题:
将区域抽象成点,区域有公共边界,则在对应点间连线,最后组成一个图.
由于回溯法是对解空间的深度优先搜索,因此在一般情况下可用递归函数来实现回溯法如下:
procedure try(i:integer);
var
begin
if i>n then 输出结果
else for j:=下界 to 上界 do
begin
if 可行{满足限界函数和约束条件} then
begin
置值;
try(i+1); {递归到下一阶段求解};
递归结束,回朔;
end;
end;
end;
说明:
i是递归深度;
n是深度控制,即解空间树的的高度;
可行性判断有两方面的内容:不满约束条件则剪去相应子树;若限界函数越界,也剪去相应子树;两者均满足则进入下一层.
再具体到本问题:
i是染到第几个区域, n就是7, j就是1 to 4(染何种颜色),