2009-09-24 5 views
4

J'aimerais connaître un algorithme possible pour calculer toutes les combinaisons possibles, sans répétitions, à partir de la longueur = 1 jusqu'à la longueur = N de N éléments.Toutes les combinaisons possibles d'éléments

Exemple:

éléments: 1, 2, 3.

sortie:

 
1 
2 
3 
12 
13 
23 
123 
+1

Il semble que vous voulez l'ensemble de puissance ... voir http://en.wikipedia.org/wiki/Power_set –

+0

Toutes les combinaisons indépendantes de la commande? –

Répondre

10

Regardez la présentation binaire des nombres de 0 à 2^n - 1.

n = 3 

i Binary Combination 

    CBA 

0 000 
1 001  A 
2 010  B 
3 011  A B 
4 100   C 
5 101  A C 
6 110  B C 
7 111  A B C 

Il vous suffit donc d'énumérer les nombres de 1 à 2^n - 1 et de regarder la représentation binaire pour savoir quel ele ments à inclure. Si vous voulez les faire trier par le nombre d'éléments après les trier ou générer les numéros dans l'ordre (il y a plusieurs exemples sur SO).

+0

Merci! si simple ... je n'y ai pas pensé du tout. Merci encore – Dario