Génération de toutes les possibilités
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
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
|
#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;
} |
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.
Merci d'avance,