Czekam na pobranie dowolnej liczby list (np. [2, 1, 4 ...], [8, 3, ...], ...) i wybieranie liczb z każdej listy w celu wygenerowania wszystkie permutacje. NpArbitralna liczba zagnieżdżonych pętli?
[2, 8, ...] [2, 3, ...] [1, 8, ...] [1, 3, ...] [4, 8, ...], [4, 3, ...], ...
to łatwo osiągnąć za pomocą zagnieżdżonych pętli for-, ale ponieważ chciałbym, aby go zaakceptować arbitralne liczba list wydaje się, że pętle for musiałyby być mocno zakodowane. Jeden dla każdej listy. Ponadto, ponieważ mój program prawdopodobnie wygeneruje dziesiątki tysięcy permutacji, chciałbym wygenerować pojedynczą permutację jednocześnie (zamiast przeliczać je za jednym razem i zapisywać wynik do wektora). Czy istnieje sposób, aby to osiągnąć programowo?
Ponieważ liczba list jest znana podczas kompilacji, pomyślałem, że mógłbym użyć meta-programowania opartego na szablonach. Wydaje się to jednak nieporęczne i nie spełnia wymogu "jeden na raz". Jakieś sugestie?
Wierzę, że ogólnie nieznana liczba pętli for jest zagnieżdżona z prostą rekurencją. – UncleBens