Frage

Ich habe ein Array wie unter

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

Beispiel für N = 4

int[] array = new array[4];

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

, wie ich alle unrepeated Kombination dieses Arrays berechnen, ohne Linq Verwendung innerhalb können?

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

War es hilfreich?

Lösung

Hier ist eine ziemlich flexibel C # -Implementierung mit Iteratoren.

Andere Tipps

Nun, da Sie für alle unrepeated Kombinationen suchen, dass es bedeutet, N sein wird! solche Kombinationen ... (also in Ihrem Fall, N! = 4! = 24 solche Kombinationen).

Wie ich bin in der Mitte dieses der Entsendung, dommer hat eine gute Umsetzung hingewiesen.

Just gewarnt werden, dass es wirklich für große Werte von N langsam bekommen wird (da es N! Permutationen).

Denken Sie über die beiden möglichen Zustände der Welt, um zu sehen, ob das ein Licht erscheinen läßt.

1) Es gibt keine Betrogenen in meinem Array (d. Jede Zahl im Array ist einzigartig). In diesem Fall, wie viele mögliche Permutationen gibt es?

2) Es gibt eine einzige Betrogene im Array. Also, von der Anzahl der Permutationen, die Sie teilweise berechnet man, wie viele sind nur dupliziert

Hmmm, lässt nehmen drei Elementanordnung der Einfachheit halber

1,3,5 hat, wie viele Permutationen?

1,3,5

1,5,3

3,1,5

3,5,1

5,1,3

5,3,1

So sechs Permutationen

Nun, was passiert, wenn wir die Liste ändern 1,5,5 zu sagen?

Wir bekommen

1,5,5

5,1,5

5,5,1

Meine Frage an Sie wäre, wie kann man dies über factorials ausdrücken?

Vielleicht versuchen, alle Permutationen mit einem Vier-Element-Array zu schreiben und sehen, ob die Glühbirne erlischt?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top