Zdefiniuj sekwencję poprzedzającą-dołączającą długości, nktóra będzie permutacją liczb, 1, 2, ..., nktóre można wygenerować za pomocą następującej procedury:
Zacznij od numeru
1.Dla każdej liczby od
2don, umieść ten numer na początku lub na końcu sekwencji (albo prepend lub dołączenia go, stąd nazwa sekwencji).
Na przykład jest to prawidłowy sposób generowania sekwencji poprzedzającej-dołączającej o długości 4:
1
21 [beginning]
213 [end]
2134 [end]
Twoim zadaniem jest zbudowanie programu lub funkcji, która pobierze liczbę nod 3do 30jako dane wejściowe, i wydrukuje lub zwróci wszystkie sekwencje długości przed dodaniem-dołączeniem w kolejności nleksykograficznej (jeśli wyprowadzasz ciągi, a nie listy, liczby powyżej 9 będą reprezentowane jako litery a-u, aby zachować długość łańcucha). Na przykład jest to kolejność dla n = 4:
1234 [RRR]
2134 [LRR]
3124 [RLR]
3214 [LLR]
4123 [RRL]
4213 [LRL]
4312 [RLL]
4321 [LLL]
Zasadniczo istnieją 2 n-1 permutacje-dopisywanie długości n.
W kodzie nie można używać żadnych wbudowanych funkcji sortujących w swoim języku. Najkrótszy program do wykonania tego w dowolnym języku wygrywa.
a-u. Czy możemy po prostu wypisywać listy liczb?