问题标题:
四色定理要Pascal内容:【问题描述】著名的四色定理你一定听说过吧?这可是近代世界三大数学难题之一唷(顺便提上一句,另外两个是费马定理和哥德马赫猜想)。四色定理的提出
问题描述:
四色定理要Pascal
内容:
【问题描述】
著名的四色定理你一定听说过吧?这可是近代世界三大数学难题之一唷(顺便提上一句,另外两个是费马定理和哥德马赫猜想)。
四色定理的提出来自英国。1852年,毕业于伦敦大学的弗南西斯•格思里(FrancisGuthrie)在一家科研单位搞地图着色工作时,发现了一种有趣的现象:“看来,每幅地图都可以用四种颜色着色,使得有共同边界的国家着上不同的颜色。”(注意:只要求有公共边的区域不同色就可以,只有公共顶点的同色也没关系)
这个结论能不能从数学上加以严格证明呢?他和在大学读书的弟弟格里斯决心试一试。兄弟二人为证明这一问题而使用的稿纸已经堆了一大叠,可是研究工作没有进展。
1852年10月23日,他的弟弟就这个问题的证明请教他的老师、著名数学家德•摩尔根,摩尔根也没有能找到解决这个问题的途径,于是写信向自己的好友、著名数学家哈密尔顿爵士请教。哈密尔顿接到摩尔根的信后,对四色问题进行论证。但直到1865年哈密尔顿逝世为止,问题也没有能够解决。
直到1976年,在J.Koch的算法的支持下,美国数学家阿佩尔(KennethAppel)与哈肯(WolfgangHaken)在美国伊利诺斯大学的两台不同的电子计算机上,用了1200个小时,作了100亿判断,才终于完成了四色定理的证明。
你的任务相对那些数学家们来说当然要容易得多:你只要编写一个程序,计算一下在给定的一张有5个区域的地图上,用四种颜色填充不同区域,并保证有公共边的区域不同色的方案数有多少就可以了。
【输入】
文件第一行是一个整数n0=
成海回答:
比较简单的搜索题。
由于数据范围很小,几乎不需要任何优化,即使用穷举法也完全没有问题。
varn,i,j,x,y,ans:longint;
a:array[1..5,1..5]of0..1;{邻接矩阵}
b:array[1..5]oflongint;{记录颜色}
proceduresearch(i:longint);
varj,k:longint;pd:boolean;
begin
forj:=1to4do{枚举颜色}
begin
pd:=true;
fork:=1toi-1doif(a[i,k]=1)and(b[k]=j)thenbeginpd:=false;break;end;{判断是否可行}
ifpdthenbeginb[i]:=j;ifi=5thenans:=ans+1elsesearch(i+1);end;
{方案累加或继续搜索}
end;
end;
begin
readln(n);
fillchar(a,sizeof(a),0);
fillchar(b,sizeof(b),0);
fori:=1tondo
begin
readln(x,y);
a[x,y]:=1;
a[y,x]:=1;
end;
ans:=0;
search(1);{搜索}
writeln(ans);{总方案数输出}
end.
范玉玲回答:
LS你有没有考虑到
10
12
23
34
45
56
67
78
89
910
101
这种数据呢。。。数组开到5/5似乎不够哦。。
童庆回答:
C++??
点击显示
数学推荐
热门数学推荐