Table of Contents
题目
能否用10种不同的颜色给1000个单位立方体染色,使得对于任意一种颜色,都能将这些小立方体重新排列成一个\(10\times10\times10\)的大立方体,且其表面只显露出该种颜色?
分析
答案是能。下面给出一种构造。
将10种颜色编号为\(0,1,\dots,9\)(模10运算)。把1000个小立方体与所有三元组\((x,y,z)\)一一对应,其中\(x,y,z\in\{0,\dots,9\}\)。
每个小立方体的6个面按如下方案染色:
| 面 | 颜色 |
|---|---|
| \(+x\) 方向的面 | \(x\) |
| \(-x\) 方向的面 | \(x+1\pmod{10}\) |
| \(+y\) 方向的面 | \(y\) |
| \(-y\) 方向的面 | \(y+1\pmod{10}\) |
| \(+z\) 方向的面 | \(z\) |
| \(-z\) 方向的面 | \(z+1\pmod{10}\) |
换言之,每个小立方体\((x,y,z)\)的6个面分别被涂成\(x,\;x+1,\;y,\;y+1,\;z,\;z+1\)(模10)。
颜色\(k\)的计数
固定一种颜色\(k\)。考察小立方体\((x,y,z)\)上有多少个面是颜色\(k\):
- \(+x\)面为\(k\)当且仅当\(x=k\);
- \(-x\)面为\(k\)当且仅当\(x=k-1\)(因为\(x+1\equiv k\Rightarrow x\equiv k-1\));
- 类似地,\(+y\)面为\(k\)当且仅当\(y=k\),\(-y\)面为\(k\)当且仅当\(y=k-1\);
- \(+z\)面为\(k\)当且仅当\(z=k\),\(-z\)面为\(k\)当且仅当\(z=k-1\)。
因此,颜色\(k\)在该立方体上的出现次数\(n_k\)就等于\(x,y,z\)中有多少个属于集合\(\{k-1,k\}\)。显然\(0\le n_k\le 3\)。
现在统计全体1000个立方体中\(n_k\)的分布:
- \(n_k=3\):三个坐标全部落在\(\{k-1,k\}\)中,共\(2^3=8\)个立方体。
- \(n_k=2\):恰好两个坐标在\(\{k-1,k\}\)中,第三个坐标不在。选哪两个坐标有\(\binom{3}{2}=3\)种,每个被选中的坐标有2种取值,第三个坐标有\(8\)种取值(排除\(k-1,k\)),共\(3\times2^2\times8=96\)个。
- \(n_k=1\):恰好一个坐标在\(\{k-1,k\}\)中。选哪个坐标有3种,取值2种,其余两个坐标各8种,共\(3\times2\times8^2=384\)个。
- \(n_k=0\):三个坐标均不在\(\{k-1,k\}\)中,共\(8^3=512\)个。
各色恰好覆盖\(3\times8+2\times96+1\times384=600\)个面,与\(10\times10\times10\)大立方体的表面单元总数一致。
排列方案
对于颜色\(k\),我们需要将1000个小立方体排成一个\(10\times10\times10\)的大立方体,使得所有外露的表面都显示颜色\(k\)。
记大立方体的位置坐标为\((i,j,p)\),\(i,j,p\in\{0,\dots,9\}\)。规定:
- 若\(i=0\),则该位置处的小立方体必须满足\(x=k-1\)(其\(-x\)面外露,颜色恰为\(k\));
- 若\(i=9\),则该位置处的小立方体必须满足\(x=k\)(其\(+x\)面外露);
- 若\(0<i<9\),则\(x\)可取\(\{0,\dots,9\}\setminus\{k-1,k\}\)中的某个值(该方向的面不外露)。
对\(j\)和\(p\)做完全对称的规定。由于\(\{0,\dots,9\}\setminus\{k-1,k\}\)恰好有8个元素,存在一个双射\(\varphi_k:\{1,\dots,8\}\to\{0,\dots,9\}\setminus\{k-1,k\}\)。
于是,位置\((i,j,p)\)处放置的小立方体为:
\[ \begin{aligned} x &= \begin{cases} k-1, & i=0,\\ k, & i=9,\\ \varphi_k(i), & 0<i<9; \end{cases}\\[4pt] y &= \begin{cases} k-1, & j=0,\\ k, & j=9,\\ \varphi_k(j), & 0<j<9; \end{cases}\\[4pt] z &= \begin{cases} k-1, & p=0,\\ k, & p=9,\\ \varphi_k(p), & 0<p<9. \end{cases} \end{aligned}\]
这样,每一坐标方向上的映射都是\(\{0,\dots,9\}\)到自身的双射,因而\((i,j,p)\mapsto(x,y,z)\)是全体1000个位置到全体1000个小立方体的一一对应。而所有外露的面必然是颜色\(k\)(例如当\(i=0\)时露出的\(-x\)面颜色为\(x+1=k\),当\(i=9\)时露出的\(+x\)面颜色为\(x=k\),等等),大立方体表面完全由颜色\(k\)覆盖。
至此,我们完成了对任意一种颜色\(k\)所需的排列,命题得证。