Mam następującą tabelę:
a b c d ...
q w e r ...
z x v ...
p
Mam dużo problemów ze znalezieniem algorytmu (najlepiej VBA, ale w innych językach jest prawie taki sam sposób myślenia), który wygeneruje listę ze wszystkimi kombinacjami - poza tym, że mam tylko kilka wierszy, jest wiele kolumn i nie byłoby to poprawne, gdyby wykonano go ręcznie, ufam VBA, aby był w 100% kompletny.
więc wynik powinien wyglądać tak:
a
a,q
a,z
q,z
z
a/b
a/b,w
a/b,x
a/b,p
a/b,w,x
a/b,w,p
a/b,x,p
a/w
a/w,x
a/w,p
a/x
a/x,p
a/p
a,q/b
a,q/b,w
a,q/b,x
a,q/b,p
a,q/b,w,x
a,q/b,w,p
a,q/b,x,p
a,q/w
a,q/w,x
a,q/w,p
a,q/x
a,q/x,p
a,q/p
....etc.
Naprawdę nie dbam o znaki „/” i „,”, znajdę sposób, aby je poprawić („/” znajduje się między elementami oddzielnych kolumn, podczas gdy „,” znajduje się między elementami z tej samej kolumny)
kombinacje są wykonywane na dwa sposoby - w poziomie i w pionie z następującym ograniczeniem: można łączyć tylko elementy „n-1” (w poziomie i / lub w pionie)
Odpowiedzi:
Twój przykład wskazał 12 pozycji. Ten kod (dostarczany przez Johna Colemana w 2005 roku) będzie notować 4095 permutacji listy w kolumnie B . Istnieją 2 N -1 pozycji:
Odniesienie:
Kod Johna Colemana
Możesz zmienić / dodać / usunąć elementy, zmieniając
Array()
. Zbyt wiele osób przekroczy limity liczby przedmiotów w kolumnie.źródło