 |
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: 15 Nov 2009 15:57 Sujet du message: Composée de deux permutations |
|
|
Bonjour,
Je tente de trouver une procédure permettant de composer 2 permutations ;
Exemple : soit A:=[3,7,8,9,4,5,2,1,6] : permutation appelée p.
Comment déterminer pop, popop...?
J'essais :
p:=proc(a,b,c,d,e,f,g,h,i)
> local u,k,P:
> P:=NULL:
> u(a):=c:u(b):=g:u(c):=h:u(d):=i:u(e):=d:
> u(f):=e:u(g):=b:u(h):=a:u(i):=f:
> for k from a to i do
> P:=P,u(k):
> od:
> P
> end: ce qui fonctionne pour trouver A à partir de B:=[1,2,3,4,5,6,7,8,9]
mais qui plante pour pop. Comment corriger ? Merci |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 18 Nov 2009 14:24 Sujet du message: |
|
|
Bonjour Michel,
Voici ce que je vous propose très simplement:
Code: |
> A:=[3,7,8,9,4,5,2,1,6];
A := [3, 7, 8, 9, 4, 5, 2, 1, 6]
> [seq(A[A[k]],k=1..nops(A))];
[8, 2, 1, 6, 9, 4, 7, 3, 5]
> [seq(A[A[A[k]]],k=1..nops(A))];
[1, 7, 3, 5, 6, 9, 2, 8, 4]
|
ou
Code: |
p2:=proc(A::list)
> local k,P:
> P:=NULL:
> for k in A do
> P:=P,A[k]:
> od:
> [P]
> end proc;
> p2(A);
[8, 2, 1, 6, 9, 4, 7, 3, 5]
> p3:=proc(A::list)
> local k,P:
> P:=NULL:
> for k in A do
> P:=P,A[A[k]]:
> od:
> [P]
> end proc;
> p3(A);
[1, 7, 3, 5, 6, 9, 2, 8, 4]
|
A plus tard. |
|
Revenir en haut de page |
|
 |
michel
Inscrit le: 23 Juin 2006 Messages: 72
|
Posté le: 20 Nov 2009 9:10 Sujet du message: Inverse d'une permutation |
|
|
Bonjour et merci à ALS.
Comment déterminer p^(-1) de la manière la plus simple ? Cordialement. |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 20 Nov 2009 9:52 Sujet du message: |
|
|
Bonjour,
Voici une procédure qui donne l'inverse de la permutation:
Code: |
> A:=[3,7,8,9,4,5,2,1,6];
A := [3, 7, 8, 9, 4, 5, 2, 1, 6]
> inverse:=proc(A::list)
> local B,k;
> B:=[0$nops(A)]: # liste nulle de la même taille que A
> for k to nops(A) do
> B[A[k]]:=k
> end do:
> B
> end proc:
> inverse(A);
[8, 7, 1, 5, 6, 9, 2, 3, 4]
|
A bientôt sur ce forum. |
|
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 - ©
- Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.
|