Bonjour à Tous

j'ai la liste suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
[V1(1150,1760) , V2(630,1660) , V3(40,2090) ]
je voudrais calculer toutes les permutations possibles de ses 3 éléments,
j'ai donc la méthode suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
        }
    }
Où la fonction factorielle(int i) renvoie la factorielle de i,
Cependant ceci me donne comme résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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)]
et ca n'est pas du tout bon !!!
Si quelq'un voit ou est le probleme...
Merci d'avance