いろは3011283 views
英語613752 views
高校物理160227 views
中学英語811776 views
中学理科1630736 views
MathPython497472 views
高校化学2924637 views
Computer368154 views
教育149518 views
LaTeX962253 views
Help
Tools
NewsSpreadsheetCalendarBookkeepingMarkdown TablesLanguage Model NewsSlidesTier ListPen ToolIllustrationCrayonWatercolorPixel ArtASCII ArtPerspectiveEndless StairsGraphMind MapER DiagramFamily TreeMemeCurved TextImage EditorMosaicRetro FilterPencil SketchSwirl EffectLine ArtOCR/HighlighterMakeup EditorFaviconVideo TrimmerScrolling VideoVideo TitleColor PickerColor ExtractorBonfireFireworksCherry BlossomWater RippleWater SplashBreaking GlassGlass TextureFabric TextureWood GrainMarble TextureBrick Wall TextureMetal TextureWashi Paper TextureCardboard TextureCSS ButtonIcon MakerBar ChartGrouped Bar ChartStacked Bar ChartPie ChartLine ChartArea ChartStacked Area ChartScatter Plot3D Bar Chart3D Pie ChartBar Chart RaceBubble ChartPopulation PyramidPictogramEarningsCandlestick ChartInvestment RiskMortgage SimulatorCalculatorMatrix CalculatorFunction GraphPolynomial ExpansionVenn DiagramField VisualizerRubik's Cube Group TheoryTraveling SalesmanVoronoi and DelaunayFractalColumn ArithmeticDraw Math FiguresArithmetic AnimationArithmetic Word ProblemsCounting with Tree DiagramsCube NetsRolling DiceCross SectionsMotion PathMechanicsWavesElectromagnetic WavesCapacitorsLight and LensesThermodynamicsHow Semiconductors WorkMolecular StructuresAtomic OrbitalsElectrochemical CellsChemical EquilibriumCrystal LatticesBuffer pHOrganic Reaction MapPeriodic TableComplex IonsDNA Double HelixCell DivisionMembrane ChannelsNerve ImpulseMuscle ContractionHormones and HomeostasisRock ClassificationWeatherConstellationsSolar and Lunar Eclipses3D ModelingFloor PlanSeismic StructuresIntersection TurnMaglevCooking AnimationOrigamiLive Viewer CountGeoJSON MapRailway MapPopulation MapCrime MapLand Price MapSchool MapShrine and Castle MapHouse of Representatives MapWord MapSolitaireReversiHakoiri MusumeChessHamburgerRippleSlide Puzzle MakerNeon PinballNovel MakerJapanese Typing PracticePiano Score EditorMusic TheoryShogi StrategyPiano Rhythm Game

English

ルービックキューブ群論の核心:位数の導出とパリティ制約

ルービックキューブの全状態数――すなわちルービックキューブ群の位数――は約 4325 京()である。この巨大な数がどこから来るのか、3 つのパリティ制約とともに厳密に導出するのが本記事の目的だ。

制約なしの場合の数え上げ

前回の記事で、ルービックキューブの状態は 4 つ組 で記述されることを見た。もし何の制約もなければ、各成分の取りうる値の数は次の通りだ。

通り
通り
通り
通り

制約なしの全組み合わせは

である。しかし、物理的に実現可能な状態はこのすべてではない。ルービックキューブを分解せずに到達できる状態には、3 つの独立な制約が課される。

第 1 の制約:コーナーツイストの保存

8 個のコーナーの向き について、

が常に成り立つ。

証明 各基本操作がこの制約を保存することを確認すればよい。U と D はコーナーの向きを一切変えないので、ツイスト総和は不変だ。R について確認しよう。R のツイスト変化は位置 1 に 、位置 4 に 、位置 8 に 、位置 5 に だった。変化量の総和は

である。L, F, B についても同様に計算すると、いずれもツイスト変化量の総和は となる。

操作ツイスト変化量総和
U
D
R
L
F
B

完成状態ではツイスト総和は 0 であり、各操作で変化量の総和が なので、どんな操作列を施しても が保たれる。

この制約により、8 個のコーナーのうち 7 個の向きを自由に選べば、残り 1 個の向きは自動的に決まる。したがって、コーナーの向きの自由度は から に減る。

第 2 の制約:エッジフリップの保存

12 個のエッジの向き について、

が常に成り立つ。

証明 良い操作 はエッジの向きを一切変えないため、フリップ総和は不変だ。悪い操作 F について確認する。F のフリップ変化は位置 1, 5, 9, 6 にそれぞれ であり、変化量の総和は

B も同様に 4 つのエッジを同時にフリップするから、総和の変化は だ。

コーナーツイスト制約

。1 個のコーナーだけを回転させることは不可能

エッジフリップ制約

。1 個のエッジだけを反転させることは不可能

この制約により、エッジの向きの自由度は から に減る。

第 3 の制約:置換パリティの連動

コーナー置換 の符号(偶奇)とエッジ置換 の符号は常に一致する。すなわち、

が成り立つ。

証明 各基本操作は、コーナーとエッジの両方で 4-cycle を引き起こす。4-cycle は 3 個の互換の積として書けるから奇置換である。したがって、任意の基本操作はコーナーとエッジの両方で符号を にする。

完成状態では であり、ともに偶置換だ。1 回の基本操作で両方の符号が同時に反転するから、何回操作を施しても が維持される。

この制約が意味するのは、コーナーだけを奇置換にしてエッジを偶置換のままにする(またはその逆)ことは不可能だということだ。たとえば、2 つのコーナーの位置だけを入れ替えて他をすべて元に戻すことはできない。

この制約は実践的にも重要で、ルービックキューブを一度分解してランダムに組み直すと、12 分の 1 の確率でしか解ける状態にならない。

3 つの制約がそれぞれ の確率を課し、 となる。

位数の導出

3 つの制約はそれぞれ独立に自由度を制限する。制約なしの場合から各制約の因子を割ると、

これを計算する。

したがって、

と書いてもよい。ここで がツイスト制約、 がフリップ制約とパリティ制約に対応する。数値を計算すると、

段階的に計算を進める。

# Python で正確に計算
import math

corners_perm = math.factorial(8)    # 40320
edges_perm = math.factorial(12)     # 479001600
corner_orient = 3**7                # 2187
edge_orient = 2**10                 # 1024

order = corners_perm * edges_perm * corner_orient * edge_orient
print(f"|G| = {order:,}")
# |G| = 43,252,003,274,489,856,000

よって、ルービックキューブ群の位数は

日本語では約 4325 京 2003 兆 2744 億 8985 万 6000 だ。

位数の素因数分解

この巨大な数の構造をさらに理解するために、素因数分解を行おう。

# 素因数分解の確認
from sympy import factorint

order = 43252003274489856000
factors = factorint(order)
print(factors)
# {2: 27, 3: 14, 5: 3, 7: 2, 11: 1}

# 検算
result = 2**27 * 3**14 * 5**3 * 7**2 * 11
print(f"検算: {result == order}")  # True

この素因数分解の各成分がどこから来るかを追跡できる。

の素因数分解:

の素因数分解:

の寄与:

の寄与:

合計すると となり、一致する。

制約の独立性の証明

3 つの制約が本当に独立であること、すなわち他の 2 つから第 3 の制約が導かれないことを示す。

ツイスト制約の独立性:1 個のコーナーだけを 120° 回転させた状態(ツイスト総和 )を考える。この状態はフリップ制約もパリティ制約も満たすが、ツイスト制約だけを破る。よってツイスト制約は他の 2 つから導かれない。

フリップ制約の独立性:1 個のエッジだけを反転させた状態(フリップ総和 )を考える。ツイスト制約とパリティ制約は満たすが、フリップ制約だけを破る。

パリティ制約の独立性:2 つのコーナーだけを入れ替えた状態を考える。コーナー置換は奇だがエッジ置換は偶であり、パリティ制約だけを破る。ツイスト制約とフリップ制約は満たされている。

以上により、3 つの制約は互いに独立であり、それぞれが全状態数を に削減する。

群構造の分解

位数の導出過程から、ルービックキューブ群 の構造が見えてくる。 は次のような半直積として記述できる。

ここで はパリティ制約を反映した制限付き直積を意味する。より正確には、

の部分群として実現される。 は wreath product(花冠積)であり、 と定義される。ここで の成分を置換する作用を持つ。

コーナー部分

:8 個のコーナーの位置置換 が、7 個の独立なツイスト の成分を並べ替える。ツイスト制約により自由度が 1 つ減っている。

エッジ部分

:12 個のエッジの位置置換 が、11 個の独立なフリップ の成分を並べ替える。フリップ制約により自由度が 1 つ減っている。

そしてこの 2 つの部分は、パリティ制約 により結合されている。コーナーとエッジは物理的には独立に見えるが、代数的にはパリティを通じて不可分に結びついているのだ。

スーパーキューブとの比較

ルービックキューブの変種として、センターの向きも区別する「スーパーキューブ」がある。標準のキューブではセンターは固定とみなすが、実際にはセンターも回転しうる。この場合の状態数は

ではなく、やや複雑な計算が必要になる。センターの向きは の値をとるが、パリティ制約により に制限される。結果として

となる。標準キューブの約 2048 倍の状態数だ。

まとめ

ルービックキューブ群の位数 は、コーナーとエッジの位置・向きの組み合わせから、3 つの独立なパリティ制約を除くことで正確に導かれる。この導出過程そのものが群の半直積構造を明らかにしており、ルービックキューブが単なるパズルにとどまらず、豊かな代数構造を持つ数学的対象であることを示している。