Bonjour,
je viens quérir votre aide, car je ne sais pas coder en C, java ou autre. Je sais comprendre par contre du pseudo-code.
Mais j'ai actuellement un problème, je cherche à effectuer, pour un exercice, une permutation de 7 éléments entre eux.
On va me dire, la solution existe sur internet, eh bien oui, mais écrite en C ou java, ou python, chose que je n'arrive pas à décoder entièrement.
Donc, voici mon problème, et si vous pouviez me donner des indices (Je vais même vous donner à la fin le code en C, mais si vous pouviez me traduire certaines notations, cela serait parfait).
Trêve de bavardages, voici le problème :
J'ai une liste de 7 éléments, et je souhaite en effectuer toutes les permutations possibles.
A chacune de ces permutations, je voudrais sortir un à un, dans l'ordre, les éléments.
Je bloque déjà pour la permutation, mais aussi pour faire sortir un à un les éléments, je ne sais pas comment l'écrire (Je sais qu'on peut faire un "For i=0 to i<liste.taille+1", mais comment écrire "Sortir l'élément", le calculer..)
Voici le code en C que j'ai pu trouvé :
private void Permutation (int k,Arraylist r)
{
int fact = 1;
for (int i = 2 ; i < r.size()+1 ; i++)
{
fact = fact*(i-1);
int pos = i - ( (k/fact) % i ) - 1;
swap(pos,i-1,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)
{
int resFact = factorielle(l.size());
for (int i = 0 ; i < resFact ; i ++)
{
Arraylist r = new Arraylist(l);
Permutation(i,r);
System.out.println(r);
}
}
Je ne comprends pas ce que les o devant les i et j veulent dire..