Ich suche eine beliebige Anzahl von Listen (zB [2, 1, 4...], [8, 3, ...],...) Und wähle Zahlen aus jeder Liste um sie zu generieren alle Permutationen. Beispiel:Beliebige Anzahl von Nested-Loops?
[2, 8, ...], [2, 3, ...], [1, 8, ...], [1, 3, ...], [4, 8, ...], [4, 3, ...], ...
Dies wird erreicht, einfach mit verschachtelten for-Schleifen, aber da ich es möchte eine willkürliche akzeptieren Anzahl der Listen Es scheint, dass die For-Schleifen hart codiert werden müssten. Eine für jede Liste. Da mein Programm wahrscheinlich viele Zehntausende von Permutationen erzeugt, möchte ich auch nur eine einzige Permutation erzeugen (anstatt sie alle auf einmal zu berechnen und das Ergebnis in einem Vektor zu speichern). Gibt es eine Möglichkeit, dies programmatisch zu erreichen?
Da die Anzahl der Listen zur Kompilierzeit bekannt ist, dachte ich, dass ich vielleicht Template-basierte Meta-Programmierung verwenden könnte. Das scheint jedoch ungeschickt zu sein und erfüllt auch nicht die "eine nach der anderen" Anforderung. Irgendwelche Vorschläge?
Ich glaube, im Allgemeinen eine unbekannte Anzahl von for-Schleifen sind verschachtelt mit einfachen Rekursion. – UncleBens