 |
Apprendre Maple Site dédié au logiciel de calcul formel Maple
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
michel
Inscrit le: 23 Juin 2006 Messages: 72
|
Posté le: 17 Sep 2009 15:56 Sujet du message: Décomposition en cycles d'une permutation |
|
|
Bonjour,
Je recherche une procédure maple permettant de généraliser le problème suivant :
Soit A l'ensemble {0,1,...,9}. Soit f l'application de A dans lui-même qui associe à x le dernier chiffre de 7*x. Montrer que f est une permutation. Calculer ses orbites et sa décomposition en cycles.
J'ai trouvé que f ->irem(7*x,10), g(inverse de f):y->irem(3*y,10) et que les cycles sont (0)(1,7,9,3)(2,4,8,6)(5).
Merci. |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 18 Sep 2009 7:52 Sujet du message: |
|
|
Bonjour,
on peut utiliser les outils nécessaires dans le package group.
Le souci est que Maple considère que le premier indice d'une liste est 1 et non 0, donc c'est pourquoi je rajoute 1, ou retranche 1 pour la permutation inverse:
Code: |
> with (group);
[DerivedS, LCS, NormalClosure, RandElement, SnConjugates, Sylow,
areconjugate, center, centralizer, core, cosets, cosrep,
derived, elements, groupmember, grouporder, inter, invperm,
isabelian, isnormal, issubgroup, mulperms, normalizer, orbit,
parity, permrep, pres, transgroup]
> f:=x->irem(7*x,10);
f := x -> irem(7 x, 10)
> p:=[seq(1+f(k),k=0..9)];
p := [1, 8, 5, 2, 9, 6, 3, 10, 7, 4]
> with(group):
> pdc:=convert(p,'disjcyc');
> [map(x->x-1,op(1,%)),map(x->x-1,op(2,%))];
pdc := [[2, 8, 10, 4], [3, 5, 9, 7]]
[[1, 7, 9, 3], [2, 4, 8, 6]]
> invperm(pdc);
[[2, 4, 10, 8], [3, 7, 9, 5]]
> convert(%,'permlist',10);
[1, 4, 7, 10, 3, 6, 9, 2, 5, 8]
> map(x->x-1,%);
[0, 3, 6, 9, 2, 5, 8, 1, 4, 7]
> g:=x->irem(3*x,10);
g := x -> irem(3 x, 10)
> p:=[seq(g(k),k=0..9)];
p := [0, 3, 6, 9, 2, 5, 8, 1, 4, 7]
|
A plus tard. |
|
Revenir en haut de page |
|
 |
michel
Inscrit le: 23 Juin 2006 Messages: 72
|
Posté le: 18 Sep 2009 15:48 Sujet du message: autre façon |
|
|
Bonjour et merci à ALS.
Autre procédure qui rencontre une difficulté avec 0 :
Code: |
> cycles := proc(s)
> local i,j,c,t;
> c := []; # On va stocker ici le résultat
> for i to nops(s) do
> if member(s[i],ListTools[FlattenOnce](c)) then next;
> fi;
> # Si on a pas encore rencontré cet élément, on construit le cycle associé dans t
> t := [];
> j := i;
> while not member(s[j],t) do
> t := [op(t),s[j]];
> j := s[j];
> od;
> c := [op(c), t]; # à la fin on ajoute le cycle à la liste des cycles
> od;
> end:
|
Pour qu'elle marche il faut prendre s:=[7,4,1,8,5,2,9,6,)]. |
|
Revenir en haut de page |
|
 |
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|

Développé par phpBB © 2001, 2006 phpBB Group
Traduction par : phpBB-fr.com
Apprendre Maple - © 09/04/2025
- Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.
|