Commits

Robert Smith committed fd70afd

Add megaminx group example.

Comments (0)

Files changed (1)

permutation-group-examples.lisp

 ;;; 43252003274489856000
 (defparameter rubik-3x3
   (group-from
-   '((3 5 8 2 7 1 4 6 33 34 35 12 13 14 15 16 9 10 11 20 21 22 23 24 17 
+   '((3 5 8 2 7 1 4 6 33 34 35 12 13 14 15 16 9 10 11 20 21 22 23 24 17
       18 19 28 29 30 31 32 25 26 27 36 37 38 39 40 41 42 43 44 45 46 47 48)
-     (17 2 3 20 5 22 7 8 11 13 16 10 15 9 12 14 41 18 19 44 21 46 23 24 
-      25 26 27 28 29 30 31 32 33 34 6 36 4 38 39 1 40 42 43 37 45 35 47 48) 
-     (1 2 3 4 5 25 28 30 9 10 8 12 7 14 15 6 19 21 24 18 23 17 20 22 43 
-      26 27 42 29 41 31 32 33 34 35 36 37 38 39 40 11 13 16 44 45 46 47 48) 
-     (1 2 38 4 36 6 7 33 9 10 11 12 13 14 15 16 17 18 3 20 5 22 23 8 27 
-      29 32 26 31 25 28 30 48 34 35 45 37 43 39 40 41 42 19 44 21 46 47 24) 
+     (17 2 3 20 5 22 7 8 11 13 16 10 15 9 12 14 41 18 19 44 21 46 23 24
+      25 26 27 28 29 30 31 32 33 34 6 36 4 38 39 1 40 42 43 37 45 35 47 48)
+     (1 2 3 4 5 25 28 30 9 10 8 12 7 14 15 6 19 21 24 18 23 17 20 22 43
+      26 27 42 29 41 31 32 33 34 35 36 37 38 39 40 11 13 16 44 45 46 47 48)
+     (1 2 38 4 36 6 7 33 9 10 11 12 13 14 15 16 17 18 3 20 5 22 23 8 27
+      29 32 26 31 25 28 30 48 34 35 45 37 43 39 40 41 42 19 44 21 46 47 24)
      (14 12 9 4 5 6 7 8 46 10 11 47 13 48 15 16 17 18 19 20 21 22 23 24
-      25 26 1 28 2 30 31 3 35 37 40 34 39 33 36 38 41 42 43 44 45 32 29 27) 
+      25 26 1 28 2 30 31 3 35 37 40 34 39 33 36 38 41 42 43 44 45 32 29 27)
      (1 2 3 4 5 6 7 8 9 10 11 12 13 22 23 24 17 18 19 20 21 30 31 32 25
       26 27 28 29 38 39 40 33 34 35 36 37 14 15 16 43 45 48 42 47 41 44 46))))
 
 ;;; Doesn't work *as intended*
-(defparameter rubik-4x4 
-  (group-from 
-   '((4 8 12 16 3 7 11 15 2 6 10 14 1 5 9 13 
-     65 66 67 68 21 22 23 24 25 26 27 28 29 30 31 32 
-     17 18 19 20 37 38 39 40 41 42 43 44 45 46 47 48 
-     33 34 35 36 53 54 55 56 57 58 59 60 61 62 63 64 
-     49 50 51 52 69 70 71 72 73 74 75 76 77 78 79 80 
+(defparameter rubik-4x4
+  (group-from
+   '((4 8 12 16 3 7 11 15 2 6 10 14 1 5 9 13
+     65 66 67 68 21 22 23 24 25 26 27 28 29 30 31 32
+     17 18 19 20 37 38 39 40 41 42 43 44 45 46 47 48
+     33 34 35 36 53 54 55 56 57 58 59 60 61 62 63 64
+     49 50 51 52 69 70 71 72 73 74 75 76 77 78 79 80
      81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96)
-    (1 2 3 4 5 6 7 8 9 10 11 12 49 53 57 61 
-     17 18 19 16 21 22 23 15 25 26 27 14 29 30 31 13 
-     36 40 44 48 35 39 43 47 34 38 42 46 33 37 41 45 
+    (1 2 3 4 5 6 7 8 9 10 11 12 49 53 57 61
+     17 18 19 16 21 22 23 15 25 26 27 14 29 30 31 13
+     36 40 44 48 35 39 43 47 34 38 42 46 33 37 41 45
      84 50 51 52 83 54 55 56 82 58 59 60 81 62 63 64
-     65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 
+     65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
      20 24 28 32 85 86 87 88 89 90 91 92 93 94 95 96)
-    (1 2 3 77 5 6 7 73 9 10 11 69 13 14 15 65 
+    (1 2 3 77 5 6 7 73 9 10 11 69 13 14 15 65
      17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
      33 34 35 4 37 38 39 8 41 42 43 12 45 46 47 16
      52 56 60 64 51 55 59 63 50 54 58 62 49 53 57 61
      49 50 51 52 53 54 55 56 73 74 75 76 61 62 63 64
      65 66 67 68 69 70 71 72 25 26 27 28 77 78 79 80
      81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96))))
+
+;;; 100669616553523347122516032313645505168688116411019768627200000000000
+(defparameter megaminx
+  (labels ((cyc (&rest cycles)
+             (from-cycles cycles 200)))
+    (generate-perm-group
+     (list
+      (cyc '(1 9 7 5 3)
+           '(50 40 30 200 11)
+           '(52 42 32 22 13)
+           '(2 10 8 6 4)
+           '(51 41 31 21 12))
+      (cyc '(11 13 15 17 19)
+           '(3 200 72 62 54)
+           '(5 28 70 60 52)
+           '(12 14 16 18 20)
+           '(4 29 71 61 53))
+      (cyc '(200 22 24 26 28)
+           '(5 30 82 74 15)
+           '(7 38 80 72 13)
+           '(21 23 25 27 29)
+           '(6 39 81 73 14))
+      (cyc '(30 32 34 36 38)
+           '(7 40 92 84 24)
+           '(9 48 90 82 22)
+           '(31 33 35 37 39)
+           '(8 49 91 83 23))
+      (cyc '(40 42 44 46 48)
+           '(9 50 114 94 34)
+           '(1 58 112 92 32)
+           '(41 43 45 47 49)
+           '(10 59 113 93 33))
+      (cyc '(50 52 54 56 58)
+           '(1 11 60 116 44)
+           '(3 19 68 114 42)
+           '(51 53 55 57 59)
+           '(2 20 69 115 43))
+      (cyc '(60 62 64 66 68)
+           '(19 70 106 118 56)
+           '(17 78 104 116 54)
+           '(61 63 65 67 69)
+           '(18 79 105 117 55))
+      (cyc '(70 72 74 76 78)
+           '(17 28 80 108 64)
+           '(15 26 88 106 62)
+           '(71 73 75 77 79)
+           '(16 27 89 107 63))
+      (cyc '(80 82 84 86 88)
+           '(26 38 90 100 76)
+           '(24 36 98 108 74)
+           '(81 83 85 87 89)
+           '(25 37 99 109 75))
+      (cyc '(90 92 94 96 98)
+           '(36 48 112 102 86)
+           '(34 46 110 100 84)
+           '(91 93 95 97 99)
+           '(35 47 111 101 85))
+      (cyc '(100 102 104 106 108)
+           '(98 110 66 78 88)
+           '(96 118 64 76 86)
+           '(101 103 105 107 109)
+           '(97 119 65 77 87))
+      (cyc '(110 112 114 116 118)
+           '(96 46 58 68 104)
+           '(94 44 56 66 102)
+           '(111 113 115 117 119)
+           '(95 45 57 67 103))))))