你有4个涂色的立方体。每个立方体的每一面涂有一种颜色。
颜色共有4种:蓝(B),红(R),绿(G),黄(Y)。
将这六个面描述为前,后,左,右,顶,底。
这4个立方体的颜色如下:
Cube Front Back Left Right Top Bottom
1 R B G Y B Y
2 R G G Y B B
3 Y B R G Y R
4 Y G B R R R
现在把这4个立方体堆成垂直的一列,我们的目标是找到那些方法,使得这一列 的每一面都显示全部4种颜色。编写一个程序找出所有符合 要求的排列。
我们可以先分析一下:
对于每个立方体,front面可能有6种,确定front之后其实就确定了back面,所以每个立方体一共有6x4=24种排列方式,4个立方体就有24x24x24x24=331776种。33W的数量级那就试试用穷举的方式吧。
对于每个立方体的24种所有排列,可以
旋转
的方式生成。具体流程可以看看后面的Python代码。这个程序会产生18种结果,大家看看有没有问题?输出