Schreiben Sie eine Funktion, die einen Satz von Ganzzahlen verwendet und jede Permutation des Satzes und den zwischen jedem Schritt durchgeführten Austausch druckt
Eingang
eine Menge von ganzen Zahlen, zum Beispiel (0, 1, 2)
Ausgabe
die Liste der Permutationen und Swaps im Format (Set) (Swap) (Set) ...
Testfall
Input:
(3, 1, 5)
Output:
(3, 1, 5)
(3, 1)
(1, 3, 5)
(3, 5)
(1, 5, 3)
(1, 3)
(3, 5, 1)
(3, 5)
(5, 3, 1)
(3, 1)
(5, 1, 3)
Regeln
- Sie können den Satz von Zahlen beliebig formatieren.
- Sie können die Swaps in beliebiger Reihenfolge durchführen
- Sie können Permutationen und Swaps wiederholen, um eine neue zu erhalten
- Ihr Code muss die Swaps nicht tatsächlich ausführen, die Ausgabe muss nur anzeigen, welcher Swap zwischen Ihrer letzten und Ihrer aktuellen Ausgabe durchgeführt wurde
- Ihr Code muss nur für Mengen mit 2 oder mehr Elementen funktionieren
- Der Satz, den Sie erhalten, enthält keine sich wiederholenden Elemente (z. B. (0, 1, 1, 2) ist ungültig).
Dies ist Code-Golf, also gewinnt der kürzeste Code!
(3, 1, 4)
oder so - ich habe es das erste Mal gelesen, als ich sehr verwirrt war, weil der erste Austausch 0,1
die Elemente, 0,1
aber auch die Indizes 0,1
, aber dann den nächsten vertauschte Swap folgte nicht diesem Muster. Ich werde Sie auch auf die Sandbox verweisen, in der Sie Herausforderungen posten und Feedback erhalten können, bevor Sie sie auf der Hauptseite veröffentlichen.