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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
720
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
AI(人工知能)の過去・現在・未来 ~AIは人類を越えるのか~
tagtag
PRO
0
160
presen_司法書士学員会.pdf
tagtag
PRO
1
110
Understanding CVP Waveforms: Interpretation and Clinical Implications in Anesthesiology
taka88
0
890
医療 LLM ベンチマークの現在地:多面的評価 と日本ローカライズ
analokmaus
1
700
データベース01: データベースを使わない世界
trycycle
PRO
1
1.5k
20260410_SystemsThinking
takusamar
1
160
Where does the rigor go? Research software and the future of trustworthy science.
arfon
0
270
(CVPR2026) Back to Basics: Let Denoising Generative Models Denoise
shumpei777
0
350
How a camera trap data standard enabled an ecosystem of interoperable tools
peterdesmet
0
130
不動産業界における業界特化のデータ整備とAI活用 ─Vertical DataとVertical AI─
estie
1
970
データベース08: 実体関連モデルとは?
trycycle
PRO
0
1.6k
GKE上でオセロの強化学習やってみた
akasan
0
110
Featured
See All Featured
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
530
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
760
How STYLIGHT went responsive
nonsquared
100
6.3k
Making the Leap to Tech Lead
cromwellryan
135
10k
Unsuck your backbone
ammeep
672
58k
Embracing the Ebb and Flow
colly
88
5.2k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
700
The Spectacular Lies of Maps
axbom
PRO
1
1k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Faster Mobile Websites
deanohume
310
32k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
300
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 で見る