2009-05-28 11 views
0

Ich habe ein Array wie untenKombination Frage

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 dieser Matrix berechnen, ohne linq Verwendung in sein kann?

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

+1

Fragen Sie nach Permutationen? Zum Beispiel: {2,4,6,8}, {2,4,8,6}, ... –

+2

Auch wenn es sich um Hausaufgaben handelt, sollten Sie es als solches markieren. –

Antwort

0

Nun, vorausgesetzt, dass Sie nach allen nicht wiederholten Kombinationen suchen, bedeutet das, dass N sein wird! solche Kombinationen ... (also in Ihrem Fall N! = 4! = 24 solcher Kombinationen).

Da ich in der Mitte dieses Postings bin, hat DOMMER eine gute Implementierung gezeigt.

Nur gewarnt sein, dass es für große Werte von N wirklich langsam wird (da es N! Permutationen gibt).

+0

Ich denke, N = 4 ist seine Obergrenze. –

+0

Guter Punkt, ich hätte das verpasst! – Daemonic

0

Denken Sie über die zwei möglichen Zustände der Welt nach, ob das irgendein Licht wirft.

1) In meinem Array sind keine Duplikate vorhanden (d. H. Jede Nummer im Array ist eindeutig). Wie viele mögliche Permutationen sind in diesem Fall vorhanden?

2) Es gibt einen einzelnen Dupe im Array. Also, von der Anzahl der Permutationen, die Sie teilweise berechnet man, wie viele sind nur Duplikate

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

Also sechs Permutationen

Was passiert nun, wenn wir die Liste auf 1,5,5 ändern?

Wir bekommen

1,5,5

5,1,5

5,5,1

Meine Frage an Sie wäre, wie kann man ausdrücken diese über Fakultäten?

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