Bonjour à Tous :yaisse2:
j'ai la liste suivante :
je voudrais calculer toutes les permutations possibles de ses 3 éléments,Code:[V1(1150,1760) , V2(630,1660) , V3(40,2090) ]
j'ai donc la méthode suivante :
Où la fonction factorielle(int i) renvoie la factorielle de i,Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 private void Permutation (int k,Arraylist r) { int fact = 1; for (int i = 2 ; i < r.size() ; i++) { fact = fact*(i-1); int pos = i - ( (k/fact) % i ) - 1; swap(pos,i,r); } } private void swap(int i, int j,Arraylist A) { Object oi = A.get(i); Object oj = A.get(j); A.set(j,oi); A.set(i,oj); } public void afficherpermutations(Arraylist l) { for (int i = 0 ; i < factorielle(l.size()) ; i ++) { Arraylist r = new Arraylist(l); Permutation(i,r); System.out.println(r); } }
Cependant ceci me donne comme résultat :
et ca n'est pas du tout bon !!! :aie:Code:
1
2
3
4
5
6
7 [V1(1150,1760), V3(40,2090), V2(630,1660)] [V3(40,2090), V2(630,1660), V1(1150,1760)] [V1(1150,1760), V3(40,2090), V2(630,1660)] [V3(40,2090), V2(630,1660), V1(1150,1760)] [V1(1150,1760), V3(40,2090), V2(630,1660)] [V3(40,2090), V2(630,1660), V1(1150,1760)]
Si quelq'un voit ou est le probleme...:D
Merci d'avance