我对编写可以建模的C#程序感兴趣,最终将扩展为解决Rubik的多维数据集。我将首先从2x2开始,然后在工作时移至3x3。我试图弄清楚如何在纸上代表魔方,但我觉得这个主意是有缺陷的。
想法是将多维数据集表示为3个2D数组。两个数组将是2x2代表顶面和底面,第三个数组将是2x8代表中间的四个面。但是我不确定如何将这些数组的节点相互关联以对翻译建模。
我也看过一些SO问题,对此问题的解答:https://stackoverflow.com/a/500243/10044000建议使用3x18数组表示多维数据集。但是我无法弄清楚如何用表示翻译来改变立方体的方式工作。如果将顶面和底面连接到数组的每个级别(因此是18),那么最后6个零件的旋转肯定会有所不同吗?
A A A B B B C C C D D D E E E F F F
A A A B B B C C C D D D E E E F F F
A A A B B B C C C D D D E E E F F F
^---------^
Translations of pieces E and F, which
represent top and bottom, would be
different than A to D?
有人可以解释这将如何工作吗?