Question

J'ai un tableau comme ci-dessous

int[] array = new array[n];// n may be 2,3,4

exemple pour N = 4

int[] array = new array[4];

array[0] = 2;
array[1] = 4;
array[2] = 6;
array[3] = 8;

comment je calculer toutes les combinaisons de ce tableau non répété sans utiliser LINQ peut être dans?

2,4,6,8
2,4,8,6
2,8,6,4
2,6,4,6
8,6,4,2
2,4,6,8
.......
.......
.......

Était-ce utile?

La solution

Voici un assez souple implémentation C # utilisant itérateurs.

Autres conseils

Eh bien, étant donné que vous êtes à la recherche de toutes les combinaisons non répétée, cela signifie qu'il y aura N! ces combinaisons ... (donc, dans votre cas, N! = 4! = 24 telles combinaisons).

Comme je suis au milieu de ce détachement, Dommer a signalé une bonne mise en œuvre.

Juste être averti qu'il est va être vraiment lent pour les grandes valeurs de N (car il y a N! Permutations).

Pensez aux deux états possibles du monde pour voir si cela jette une lumière.

1) Il n'y a pas dupes dans mon tableau (i.e.. Chaque numéro du tableau est unique). Dans ce cas, combien possible permutations sont là?

2) Il y a une seule dupe dans le tableau. Ainsi, le nombre de permutations que vous avez calculé dans la première partie, combien sont juste doublons

Hmmm, permet de prendre un tableau à trois éléments pour la simplicité

1,3,5 a combien de permutations?

1,3,5

1,5,3

3,1,5

3,5,1

5,1,3

5,3,1

six permutations

Maintenant, ce qui se passe si nous changeons la liste de dire 1,5,5?

Nous obtenons

1,5,5

5,1,5

5,5,1

Ma question serait, comment pouvez-vous exprimer via factorielles?

Peut-être essayer d'écrire toutes les permutations avec un tableau de quatre éléments et voir si l'ampoule se éteint?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top