Distinct Colourings of a Rubik's Cube

Problem 599

The well-known Rubik's Cube puzzle has many fascinating mathematical properties. The 2×2×2 variant has 8 cubelets with a total of 24 visible faces, each with a coloured sticker. Successively turning faces will rearrange the cubelets, although not all arrangements of cubelets are reachable without dismantling the puzzle.

Suppose that we wish to apply new stickers to a 2×2×2 Rubik's cube in a non-standard colouring. Specifically, we have n n different colours available (with an unlimited supply of stickers of each colour), and we place one sticker on each of the 24 faces in any arrangement that we please. We are not required to use all the colours, and if desired the same colour may appear in more than one face of a single cubelet.

We say that two such colourings c1 ,c2 are essentially distinct if a cube coloured according to c1 cannot be made to match a cube coloured according to c2 by performing mechanically possible Rubik's Cube moves.

For example, with two colours available, there are 183 essentially distinct colourings.

How many essentially distinct colourings are there with 10 different colours available?

问题599:魔方的不同着色

著名的魔方有许多迷人的数学属性。2×2×2变体魔方有八个小方块, 总共有24个可见的面, 每个面上都有一张有色的贴纸。连续转动面将重新排列小方块, 但是不拆除魔方的情况下,不是所有小方块排列都可达。

假设我们希望将新的不干胶贴纸贴在一个非标准着色的2×2×2魔方上。具体地说, 我们有 n 种不同的颜色可用 (每种颜色的贴纸都无限供应), 我们在每个面上都贴一张贴纸。我们不一定要使用所有的颜色, 如果需要, 在单个小方块的多个面上可以出现相同的颜色。

如果按照 c1着色的魔方,不能通过旋转的机制, 使魔方变成与着色c2匹配。那么我们说这c1,c2两种着色本质上是不同的。

例如, 有两种颜色可用时, 本质上有183种不同的着色。

求:若有十种不同的颜色,有多少种本质上不同的着色?

用了http://blog.csdn.net/libin56842/article/details/24151065# 的数据结构来模拟,假定6面[U,L,F,R,B,D]有1~6的颜色,凡是能通过turn_x()等3个函数得到的排列,本质上都是一种。

1
2
3
围绕坐标系原点出发的8个象限的是整体旋转的结果。


U=[1,1,1,1];
L=[2,2,2,2];
F=[3,3,3,3];
R=[4,4,4,4];
B=[5,5,5,5];
D=[6,6,6,6];

function show()
println("..",U[1],U[2],"....")
println("..",U[3],U[4],"....")
println(L[1],L[2],F[1],F[2],R[1],R[2],B[1],B[2])
println(L[3],L[4],F[3],F[4],R[3],R[4],B[3],B[4])
println("..",D[1],D[2],"....")
println("..",D[3],D[4],"....")
end;

function turn_x()
F[2],F[4],D[2],D[4],B[3],B[1],U[2],U[4] = 
U[2],U[4],F[2],F[4],D[2],D[4],B[3],B[1];
R[1],R[2],R[3],R[4]=R[2],R[4],R[1],R[3];
show();
end;

function turn_y()
F[1],F[2],R[1],R[2],B[1],B[2],L[1],L[2] = 
L[1],L[2],F[1],F[2],R[1],R[2],B[1],B[2];
U[1],U[2],U[3],U[4]=U[2],U[4],U[1],U[3];
show();
end;

function turn_z()
U[3],U[4],L[4],L[2],D[1],D[2],R[3],R[1] = 
R[1],R[3],U[3],U[4],L[2],L[4],D[1],D[2];
F[1],F[2],F[3],F[4]=F[2],F[4],F[1],F[3];
show();
end;

评论

推荐 0
超级厉害啊

推荐 0
一个比赛的前几名 http://www.diy-robots.com/?p=282
http://tomas.rokicki.com/cubecontest/winners.html
https://www.jaapsch.net/puzzles/ –  lt 04-19 12:17

推荐 0
这里还有数学理论 http://blog.miskcoo.com/

推荐 0
另一个类似的2阶
http://blog.csdn.net/wildcatlele/article/details/8764601

推荐 0
这里有个3*3*3的 http://www.2cto.com/kf/201312/262314.html

推荐 0
然后用每个面0、1两种颜色去尝试。用原始出处的排列做下标去删除。

我要评论

需要登录后才能发言
登录未成功,请修改提交。

× 4645
× 2