Le GAP et Rubik's Cube
24
Fevr
2024
GAP
GAP est un logiciel de calcul formel, il permet de calculer un certain nombre de caractéristiques du Rubik's Cube, du Pocket, du Skewb, ...
comme le nombre d'états, le nombre de J-conjugaison-classes, ...
Calcul le nombre d'états du Pyraminx
|
|
Autocollant numérotés |
|
|
|
Les rotations G |
|
|
|
Les rotations g |
|
Voici un programme en GAP qui calcule le nombre d'états du Pyraminx :
Pyraminx :
#gap_pyraminx.txt
#gap_pyraminx.txt
#per de base: (arete)(arete)(centre)
pG := (2,4,11)(8,10,5)(21,15,16);
pD := (1,12,4)(7,6,10)(17,14,24) ;
pH := (1,8,9)(7,2,3)(22,13,20) ;
pP := (3,5,12)(9,11,6)(23,19,18) ;
#permutations étendues (violer les lois)
pGamma := (1,7) ;
pOmega := (1,2)(7,8);
#permutation sommet
pg := (30,28,29);
pd := (33,31,32);
ph := (27,25,26);
pp := (35,34,36);
LAMBDAPLUS := Group( pG, pD, pH, pP, pg, pd, ph, pp, pGamma, pOmega );
LAMBDA := Group( pG, pD, pH, pP, pg, pd, ph, pp);
Print( "\n" );
Print( "|LAMBDA+| = ",Size( LAMBDAPLUS ), "\n" );
Print( "|LAMBDA| = ", Size( LAMBDA ) , "\n" );
Print( "N = ", 2 * 2 , "\n" );
Print( "|G+| = ", Factorial(6) * (2^6) * (3^4) *(3^4), "\n" );
Print( "|G| = |G+|/N = ", (Factorial(6) * (2^6)*(3^4)*(3^4)) / ( 2 * 2 ), "\n" );
Trouver des formules en Pyraminx
On se donne une permutation et on veut trouver une formule du Pyraminx associée
Voici un programme en GAP qui trouve une formule du Pyraminx qui pivote les arêtes (AG) et (BA) :
# (arete)(arete)(centre) ;
pG := (2,4,11)(8,10,5)(21,15,16);
pD := (1,12,4)(7,6,10)(17,14,24);
pH := (1,8,9)(7,2,3)(22,13,20);
pP := (3,5,12)(9,11,6)(23,19,18);
pGamma := (1,7);
pOmega := (1,2)(7,8);
# sommet
pg := (30,28,29);
pd := (33,31,32);
ph := (27,25,26);
pp := (35,34,36);
LAMBDA := Group( pG, pD, pH, pP, pg, pd, ph, pp);;
# Les rotations de base
rotbase := EpimorphismFromFreeGroup(LAMBDA:names:=["G", "D", "H", "P", "g", "d", "h", "p"]);;
per1 := (8,2)(10,4) ;;
pertxt1 := "(AG)+(BA)+" ;; # GDG'HG'H'GD' (8)
#per2 := (1,9,4)(3,10,7);;
#pertxt2 := "(BA,AD,GD)" ;;# DHD'H' (4)
#per3 := (1,8,9)(7,2,3);;
#pertxt3 := "(AD,AG,GD)" ;;# DGHG'H'D'G'HGPG'P'H'G'HP'H'PG'DH'D'H (23)
#per4 := (1,7)(2,8)(3,9)(4,10)(5,11)(6,12) ;;
#pertxt4 := "SuperFlip" ;;# HGPG'P'H'DGD'HPH'2G'HDHD'HDH'2P'D' (24)
per := per1 ;;
pertxt := pertxt1 ;;
formule := PreImagesRepresentative( rotbase, per );;
#affichage en clair
formule1 := String(formule);;
formule1 := ReplacedString( formule1, "^-1", "'" );;
formule1 := ReplacedString( formule1, "^-2", "'2" );;
formule1 := ReplacedString( formule1, "^2", "2" );;
formule1 := ReplacedString( formule1, "*", "" );;
Print("\n ",pertxt," = ", formule1," (",Length(formule),")", "\n" );
1 2 3 4 5 [6] 7 8 9
Accueil
DMJ: 01/04/2024