Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Rubiks Cube and SageMath
Search
USAMI Kosuke
October 31, 2020
Science
1.8k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rubiks Cube and SageMath
※ Docswell に移行しました
https://www.docswell.com/s/usami-k/5P97GG-rubiks-cube-and-sagemath
USAMI Kosuke
October 31, 2020
More Decks by USAMI Kosuke
See All by USAMI Kosuke
Onsager代数とその周辺 / Onsager algebra tsudoi
usamik26
0
730
Apple HIG 正式名称クイズ結果発表 / HIG Quiz Result
usamik26
0
290
ゆめみ大技林製作委員会の立ち上げの話 / daigirin project
usamik26
0
420
@ViewLoadingプロパティラッパの紹介と自前で実装する方法 / @ViewLoading property wrapper implementation
usamik26
0
570
これからUICollectionViewを実践活用する人のためのガイド / Guide to UICollectionView
usamik26
1
840
Xcodeとの最近の付き合い方のはなし / Approach To Xcode
usamik26
2
750
UICollectionView Compositional Layout
usamik26
0
900
Coding Swift with Visual Studio Code and Docker
usamik26
0
610
Swift Extension for Visual Studio Code
usamik26
2
1.2k
Other Decks in Science
See All in Science
1. CPC理論の展開と集合的知能モデル(JSAI2026 KS-27 集合的予測符号化と新たな知性の時代)
hayashiyus884
1
390
Kritische evaluatie van GenAI-output voor literatuuronderzoek
voginip
0
240
AI(人工知能)の過去・現在・未来 ~AIは人類を越えるのか~
tagtag
PRO
0
160
ハミルトン・ヤコビ方程式の解の性質と物理的意味
enakai00
0
910
Wet Active Matter
rajeshrinet
0
150
(SIGBIO84) Inverse MSMD法による化合物部分構造プロファイリングと結合親和性推定
keisukeyanagisawa
PRO
0
130
How a camera trap data standard enabled an ecosystem of interoperable tools
peterdesmet
0
130
摂理と合理の肉体改造 — AI時代の減量を支える観測・制御・継続
kiyoshi
0
3.5k
データベース03: 関係データモデル
trycycle
PRO
1
870
Visual Linear Algebra - Lecture at Shosen Grande
hiranabe
0
560
Utiliser Bitcoin sans Internet
rlifchitz
0
380
(CVPR2026) Back to Basics: Let Denoising Generative Models Denoise
shumpei777
0
370
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
940
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
The Cost Of JavaScript in 2023
addyosmani
55
10k
First, design no harm
axbom
PRO
2
1.3k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
770
What's in a price? How to price your products and services
michaelherold
247
13k
Un-Boring Meetings
codingconduct
0
430
Docker and Python
trallard
47
4.2k
Building the Perfect Custom Keyboard
takai
2
880
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
340
Transcript
1/21 ルービックキューブ群を SageMath で見る 宇佐見 公輔 2020 年 10 月
31 日 宇佐見 公輔 ルービックキューブ群を SageMath で見る
2/21 自己紹介 職業:プログラマ / 趣味:数学 最近の活動: イジング模型(10 月 / MathWills)
ルービックキューブと群論(10 月 / 関西日曜数学友の会) 平面の敷き詰めとルート系(6 月 / 日曜数学会) 四元数のはなし(5 月 / 関西日曜数学友の会) 宇佐見 公輔 ルービックキューブ群を SageMath で見る
3/21 今回の内容 ルービックキューブは群論の言葉で考察することができます。 SageMath でルービックキューブ群について調べて遊んでみたい と思います。 宇佐見 公輔 ルービックキューブ群を SageMath
で見る
4/21 ルービックキューブ考察にあたっての前提 3 次元空間の中でキューブの位置や向きを固定します。キューブ そのものを回転させることは考えません。 キューブの操作は、各面を時計回りまたは反時計回りに 90 度ずつ 動かすことを考えます。真ん中の列を回転させることはしません。 宇佐見
公輔 ルービックキューブ群を SageMath で見る
5/21 小方体(cubelet) 小方体:キューブを構成する小立方体。中心を除いて 26 個。 1 面体:1 つの面が外側に見えている小方体。6 個。 2
面体:2 つの面が外側に見えている小方体。12 個。 3 面体:3 つの面が外側に見えている小方体。8 個。 先ほどの前提から、1 面体は動きません。2 面体と 3 面体がキュー ブの操作によって移動します。 宇佐見 公輔 ルービックキューブ群を SageMath で見る
6/21 小面(facet) キューブの各面を構成する正方形を小面と呼びます。各面で中央 を除いて 8 個、全体で 48 個あります。 +--------------+ |
1 2 3 | | 4 top 5 | | 6 7 8 | +------------+--------------+-------------+------------+ | 9 10 11 | 17 18 19 | 25 26 27 | 33 34 35 | | 12 left 13 | 20 front 21 | 28 right 29 | 36 rear 37 | | 14 15 16 | 22 23 24 | 30 31 32 | 38 39 40 | +------------+--------------+-------------+------------+ | 41 42 43 | | 44 bottom 45 | | 46 47 48 | +--------------+ 宇佐見 公輔 ルービックキューブ群を SageMath で見る
7/21 キューブ操作のシングマスター記法 各面を時計回りに 90 度回転する操作を U, D, L, R, F,
B と書きま す。反時計回りは U または U−1 と書きます。 宇佐見 公輔 ルービックキューブ群を SageMath で見る
8/21 ルービックキューブ群 X を小面 48 個の集合とします。キューブ操作は、X の置換写像で あると考えることができます。X の置換全体の集合 SX
は群にな ります。これを X の対称群と呼びます。 SX の中にはキューブ操作の組み合わせだけでは実現できないも のもあります。例えば、3 面体のひとつをルービックキューブか ら取り外して、小面のうち 2 つの色を逆に貼り替えてからルー ビックキューブに戻す、ということをします。これは小面集合 X の置換にはなっていますが、キューブ操作だけでは元の配置に戻 すことができません。 基本操作 U, D, L, R, F, B で生成される SX の部分群 G を、ルー ビックキューブ群と呼びます。 G := U, D, L, R, F, B ⊂ SX 宇佐見 公輔 ルービックキューブ群を SageMath で見る
9/21 SageMath SageMath は数学関連のソフトウェアを統合したものです。 SageMath には、ルービックキューブ群を扱うプログラムが最初 から組み込まれています。 sage: rubik =
CubeGroup() sage: rubik The Rubik's cube group with generators R,L,F,B,U,D in SymmetricGroup(48). 宇佐見 公輔 ルービックキューブ群を SageMath で見る
10/21 ルービックキューブのグラフィカル表示 (1) sage: rubik.display2d("") sage: rubik.plot_cube("") sage: rubik.plot3d_cube("") +--------------+
| 1 2 3 | | 4 top 5 | | 6 7 8 | +------------+--------------+-------------+------------+ | 9 10 11 | 17 18 19 | 25 26 27 | 33 34 35 | | 12 left 13 | 20 front 21 | 28 right 29 | 36 rear 37 | | 14 15 16 | 22 23 24 | 30 31 32 | 38 39 40 | +------------+--------------+-------------+------------+ | 41 42 43 | | 44 bottom 45 | | 46 47 48 | +--------------+ 宇佐見 公輔 ルービックキューブ群を SageMath で見る
11/21 ルービックキューブのグラフィカル表示 (2) sage: rubik.plot_cube("R") sage: rubik.plot_cube("R U") 宇佐見 公輔
ルービックキューブ群を SageMath で見る
12/21 ルービックキューブの操作 (1) sage: rubik.move("R")[0] (3,38,43,19)(5,36,45,21)(8,33,48,24) (25,27,32,30)(26,29,31,28) 操作 R は長さ
4 の巡回置換 5 個の積だと分かります。 sage: rubik.move("R2")[0] (3,43)(5,45)(8,48)(19,38)(21,36) (24,33)(25,32)(26,31)(27,30)(28,29) 操作 R2 は長さ 2 の巡回置換 10 個の積だと分かります。 宇佐見 公輔 ルービックキューブ群を SageMath で見る
13/21 ルービックキューブの操作 (2) sage: rubik.move("R U")[0] (1,3,38,43,11,35,27,32,30,17,9,33,48,24,6) (2,5,36,45,21,7,4)(8,25,19)(10,34,26,29,31,28,18) 先ほどは長さ 2
や 4 の巡回置換でしたが、今回は長さ 7 や 11 の 巡回置換が出てきているのが興味深いです。 (8,25,19) に注目してみます。これは右上手前の小方体であり、 操作 RU で元の位置に戻りますが、120 度回転しています。その ため、長さ 3 の巡回置換になっています。 宇佐見 公輔 ルービックキューブ群を SageMath で見る
14/21 ルービックキューブ群の位数 ルービックキューブ群は有限群です(有限集合の置換は有限個) 。 その大きさがどれくらいなのか見てみます。 sage: rubik = CubeGroup() sage:
rubik.order() 43252003274489856000 sage: rubik.order().factor() 2^27 * 3^14 * 5^3 * 7^2 * 11 つまり、ルービックキューブで可能な配置は約 4325 京通りある ことが分かります。 宇佐見 公輔 ルービックキューブ群を SageMath で見る
15/21 元の位数 (1) Definition 群の元 g について gm = 1
が成り立つような自然数 m で最小のも のを、元 g の位数と呼びます。 Definition ルービックキューブの特定の操作手順 g を m 回繰り返すと元の配 置に戻るとき、その最小の m を g の位数と呼びます。 操作 R は 4 回行えば元に戻るので R の位数は 4 です。 sage: rubik.move("R")[0].order() 4 宇佐見 公輔 ルービックキューブ群を SageMath で見る
16/21 元の位数 (2) Theorem 有限群の元の位数は有限である。 これは、群の元 g に対して集合 {gk |
k ∈ Z} が部分群となること から分かります。 Theorem ルービックキューブで特定の操作手順を何度も繰り返すと、必ず 元の配置に戻る。 ルービックキューブで考えると成り立つかどうか分からない気が しますが、群論で考えるとわりと簡単に分かる、というのは興味 深い点だと思います。 宇佐見 公輔 ルービックキューブ群を SageMath で見る
17/21 元の位数 (3) では、操作 RU は何回やれば元に戻るのか? sage: rubik.move("R U")[0].order() 105
実際にやってみると、 「え、これ本当に元に戻る・・・?」と不安 になりますが、頑張って回すと本当に戻るのでちょっと感動。 宇佐見 公輔 ルービックキューブ群を SageMath で見る
18/21 元の位数 (4) ルービックキューブ群には位数 1260 の元があります。そのひと つが RU2D BD です。これより大きい位数の元はありません。
sage: rubik.move("R U2 D' B D'")[0].order() 1260 宇佐見 公輔 ルービックキューブ群を SageMath で見る
19/21 操作手順の例:むすび 動く小面が少ない操作手順の例を挙げます。島内先生の本で「む すび」と呼んでいる手順です。操作は多いですが、結果を図で表 示すると分かりやすいような気がします。 sage: rubik.plot_cube("R B L F
U^2 F' L' B' R' U^2") 宇佐見 公輔 ルービックキューブ群を SageMath で見る
20/21 共役 群の元 g に対して(群の元 h を使って)h−1gh の形の元を共役と 呼びます。 「むすび」の共役を考えると、別の場所の置換を作り出すことがで
きます。 sage: rubik.plot_cube("R R B L F U^2 F' L' B' R' U^2 R'") 宇佐見 公輔 ルービックキューブ群を SageMath で見る
21/21 参考文献 参考文献: Rubik’s cube group functions - Sage Reference
Manual David Joyner、群論の味わい -置換群で解き明かすルービッ クキューブと 15 パズル- 島内剛一、ルービック・キューブと数学パズル David Joyner 先生が SageMath にルービックキューブ群を組み 込んだようです。 島内先生の本には、ルービックキューブの様々な手順や、それを 利用した解法が載っています。 (残念ながら絶版ですが) 宇佐見 公輔 ルービックキューブ群を SageMath で見る