目录
-
零、前言
最近在学习图论的知识,遇到了四立方体难题(包你迷)这个问题。虽然有书上的参考答案,但是笨笨的我还是看了好久才看懂。网上资料很少,所以我在此记录下我的想法和心路历程,供后面的人参考。因为我才疏学浅,有什么不对的请大佬在评论区指出。
PS:对问题有所了解的的大佬可以直接看第三部分。三、具体分析
-
一、问题简述
有四个大小相同的正立方体,每个立方体的每个面涂上红(R)、蓝(B)、绿(G)、黄(Y)四种颜色之一。现在你有这四个立方体,试把这四个立方体堆成一个柱体,使四种颜色在柱体的每个侧面上同时出现。
-
二、问题求解
例如,我们已经有了四个正立方体,把它展开,得到下面这四张展开图。
1、以四种颜色R、B、G、Y为顶点构造一个无向图G,两个顶点之间有一条边当且仅当立方体的一对相对面的颜色为对应的两顶点所代表的颜色。于是,对每一个立方体有一个对应的图。例如,对所给的实例,四个立方体对应的图如下所示。
2、把1中得到的四个图重叠成一个图。此时,每个立方体对应的图的各边上均标有此立方体的编号。在这个例子下,得到下图。
3、判断伪图中是否有如下性质的子图H1.H2:
(1)H1和H2无公共边,且都是2度正则图;
(2)H1和H2中的每个恰好含有每个立方体的一条边。
如果无此性质的子图H1和H2,则此对实例无解;否则有解,且H1为堆成体的前后面对应图,H2为左右面对应图。H1和H2将如下两张图所示。
其最终的目标摆法如下图。
-
三、具体分析
我们不妨先认定上面的过程都是对的(废话本来就是书里写的),简单来看,我们按上面操作的过程就是在前后(或者左右)两面寻找一个回路。最初四个正立方体绘制的图像中每一条线都代表了正立方体的颜色对面关系。伪图就是四个正立方体的关系的集合。在伪图中寻找H1和H2就是在通过旋转等操作摆放四个正立方体。第一次听可能会觉得很奇怪,不必过于在意这一点,我们继续往后看。
注意到H1和H2中同一个颜色的点实质上代表了前后(或者左右)的两个面,例如H1中的G既代表目标堆中④号正立方体的前面,又代表①号正立方体的后面。H1和H2无公共边是指一个正立方体的两个对面不能同时既出现再前后,又出现在左右;要求H1和H2为度为2的正则图,实质上要求了同一个颜色的面共连接了两个不同颜色的面;要求每个正立方体恰有一条边,是在要求我们找的回路包含了四个正立方体,而不是遗漏了其中几个。参考下面的效果图,聪明的你会发现这是必要的。具体的证明可以使用反证法,上面三条任意一条不成立,就会引出矛盾,这是显然的。
从上面的分析中,我们可以发现,只要能找到H1和H2,就有那么一种摆放与之对应。那么是否只要有一种摆放满足要求,我们就能找到对应的H1和H2呢?答案是肯定的,我们就是那么通过构造来解决问题的。(废话)其大体的效果是这样的。蓝色的线从前面指向后面的同色的面,绿色的线从后面回到对应的前面。可以发现,下面的效果图中蓝色的线全体就是上面的H1本身。