Show you can tile 3D space with this structure: center cube with one cube attached to each face

137 Views Asked by At

This is problem 2.1 from THE BLACK BOOK OF PROBLEM SOLVING: Define a Czech cube to be a center cube with one cube attached to each face. Prove that all of R3 can be tiled by Czech cubes.

enter image description here

Just 'greedily' stacking these structures together, it seems like you can extend them quite easily in different directions. But I am curious how one would write a mathematical proof as asked of by the question. Or is there an efficient way to argue about these problems more generally - works for more of these cubic complexes.

1

There are 1 best solutions below

7
On

As you ask for a "big view" of this type of question, I will say that it has to do with the mathematical side of cristallography. Though I am not at all in this domain, I have met some of its aspects while doing discrete geometry, a domain born around 50 years ago, but also by working on "geometry of numbers", a domain created by Minkowski around 1900.

Instead of a Minecraft-generated figure, I propose you a figure generated by a Matlab program (Fig. 1 below ; Matlab program at the bottom of this answer) with 8 "Czech cubes", one of them being colored in green. We will consider that they belong to lattice $\mathbb{Z}^3$.

Convention : each little cube will be coded by the coordinates of its lowest vertex (i.e., the vertex with the lowest coordinates in $x,y,z$).

It has taken me some time before understanding how the central cubes (featured in black in Fig. 1) of the "Czech cubes" had to be placed in a 3D "quincunx" ; an algebraic description is given in formula (1) below.

enter image description here

Fig. 1 : $\textit{The unit cell is depicted in red.}$ $\textit{$x$-axis is on the right.}$

enter image description here

Fig. 2 : $\textit{The unit cell with its 6 interior points with integer coordinates.}$

The 3D space can be filled by Czech cubes in 2 steps :

  • The generation of the central ("black") cubes :

$$\begin{cases}x&=&n+2q\\y&=&2p+q\\z&=&2n+p+q\end{cases} \ \text{for any } \ n,p,q \in \mathbb{Z}, \tag{1}$$

  • followed, for every "black cube" with code $(x,y,z)$, of the generation of its $6$ lateral cubes :

$$(x,y,z) \ \ \to \ \ \begin{cases}(x,y,z-1)&\text{lower cube}\\ (x,y,z+1)&\text{upper cube}\\ (x-1,y,z)&\text{lateral cube at the same level}\\ (x,y-1,z)&\text{---}\\ (x+1,y,z)&\text{---}\\ (x,y+1,z)&\text{---} \end{cases}\tag{2}$$

In this way, each $(x,y,z) \in \mathbb{Z}^3$ is obtained once and only once.

Indeed, if (1) is written under the form :

$$\begin{pmatrix}x\\y\\z\end{pmatrix}=\underbrace{\begin{pmatrix}1&0&2\\ 0&2&1\\2&1&1\end{pmatrix}}_{M}\begin{pmatrix}n\\p\\q\end{pmatrix}\tag{3}$$

The determinant of $M$ being $-7 \ne 0$, one has the inverse relationship :

$$\begin{pmatrix}n\\p\\q\end{pmatrix}= \underbrace {\color{red}{\tfrac17}\begin{pmatrix}-1&-2& \ \ 4\\ -2& \ \ 3& \ \ 1\\ \ \ 4& \ \ 1&-2\end{pmatrix}}_{M^{-1}}\begin{pmatrix}x\\y\\z\end{pmatrix}\tag{4}$$

A first heuristic remark is that, due to fraction $1/7$, a given cube coded by $(x,y,z)$ gives integer values for $(n,p,q)$ (i.e., will be a "black cube") in one case out of $7$ which is exactly what we want.

Now, the proof : it suffices to check what happens in the unit cell (cristallographic terminology) which is the parallelepiped (depicted in red) generated by the 3 columns of matrix $M$ ; indeed, the whole structure is generated by this unit cell by translations. More precisely, one must plainly have a check of the six points inside this unit cell (Fig. 2) and verify that each one is connected to one of the six cases listed in (2), i.e., each one is one of the 6 lateral cubes of a "nearby" "Czech cube". Checking this can be done in fact visualy (using for example the projections on the coordinate planes).

Remark : as almost always in cristallography-like issues, the "unit cell" could have been chosen differently.

The figure has been generated by the following Matlab program:

 clear all;close all;hold on;axis equal;
 % cube plotting
 X=[0,1,1,0,0,1,1,0,0,0,0,0,1,1,1,1,1];
 Y=[0,0,1,1,1,1,0,0,0,1,1,0,0,0,0,1,1];
 Z=[0,0,0,0,1,1,1,1,0,0,1,1,1,0,1,1,0];
 f=@(x,y,z,c,w)(plot3(x+X,y+Y,z+Z,'color',c,'linewidth',w));
 N=1;
 T=[]; % big array 3 x s containing the codes of all the cubes
 for n=0:N
    for p=0:N
       for q=0:N
          x=n+2q;y=2p+q;z=2n+p+q; % see eq. (1)
          % codes for the 7 cubes of the generic "Czech cube" 
          M=[x,x,x-1,x,x+1,x,x;
          y,y,y,y-1,y,y+1,y;
          z,z-1,z,z,z,z,z+1];
          T=[T,M]; % appending them in big array
        end
     end
 end;
 view(-70,10);
 % the green Czech cube
 for i=2:7
    f(T(1,i),T(2,i),T(3,i),'g',3);
 end;
 s=size(T,2); % number of codes stored in array T
 % plotting all little cubes :
 for k=1:s;
    f(T(1,k),T(2,k),T(3,k),'b',1);
 end
 % plotting all central (black) cubes, one among 7 :
 for k=1:7:s;
    f(T(1,k),T(2,k),T(3,k),'k',3);
 end