Trouver des formules pour le Pyraminx par le GAP
Publié : Mar 27/02/2024 10:36
On veut trouver une formule pour :
1) Déplacer 3 arêtes
2) Pivoter deux arêtes
3) SuperFlip (toutes les arêtes sont renversées)
Numérotation des autocollants
Les rotations de base
On veut trouver une formule qui déplace ces arêtes
On veut trouver une formule qui pivote ces arêtes
On veut trouver une formule pour le SuperFlip (toutes les arêtes sont renversées)
Voici un petit script en GAP qui répond à la question.
On se donne la permutation, et on doit trouver la formule
REMARQUE : GAP ne donne pas la formule minimale, mais une formule qui répond à la question.
1) Déplacer 3 arêtes
2) Pivoter deux arêtes
3) SuperFlip (toutes les arêtes sont renversées)
Numérotation des autocollants
Les rotations de base
On veut trouver une formule qui déplace ces arêtes
On veut trouver une formule qui pivote ces arêtes
On veut trouver une formule pour le SuperFlip (toutes les arêtes sont renversées)
Voici un petit script en GAP qui répond à la question.
On se donne la permutation, et on doit trouver la formule
Code : Tout sélectionner
# 2arete, 1centre,
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);;
# Les rotations de base
rotbase := EpimorphismFromFreeGroup(LAMBDA:names:=["G", "D", "H", "P"]);;
#per1 := (8,2)(10,4) ;;
#pertxt1 := "(AG)+(BA)+" ;;
#per2 := (1,9,4)(3,10,7);;
#pertxt2 := "(BA,AD,GD)" ;;
#per3 := (1,8,9)(7,2,3);;
#pertxt3 := "(AD,AG,GD)" ;;
per4 := (1,7)(2,8)(3,9)(4,10)(5,11)(6,12) ;;
pertxt4 := "SuperFlip" ;;
per := per4 ;
pertxt := pertxt4 ;
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" );
REMARQUE : GAP ne donne pas la formule minimale, mais une formule qui répond à la question.