Bonjour
Je code une application en java.
Je souhaiterai à partir d'une liste générer toutes les combinaisons possibles de cette liste.
Par exemple, si L=(a,b,c) je veux générer R=(a,b,c,ab,ac,bc).
Je sais le faire dans d'autres langages que le java mais je n'arrive pas à le transposer en java a cause du passage par parametres qui n existe si j ai bien compris que pour les objets.
Par exemple en c, cela donnerai
Je ne sais pas comment m'y prendre pour qu'il y est une récursivité sans ce passage des paramètres par référence car je dois retourner 3 parametres.
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 #include <stdio.h> #define echanger(a, b) do {int temp=(a); (a)=(b); (b)=temp;} while (0) void perm(char *t, int n, int k) { int i; if (k == n - 1) printf("%s\n", t); else for (i = k; i < n; i++) { echanger(t[k], t[i]); perm(t, n, k + 1); echanger(t[i], t[k]); } } int main(void) { char t[] = "oCaml"; perm(t, sizeof t / sizeof *t - 1, 0); return 0; }
Merci d'avance,
Partager