Definire a sequenza di lunghezza appendice antepostan
per essere una permutazione dei numeri 1, 2, ..., n
che può essere generata dalla seguente procedura:
Inizia con il numero
1
.Per ogni numero da
2
an
, posiziona questo numero all'inizio o alla fine della sequenza ( anteporre o aggiungi , quindi il nome della sequenza).
Ad esempio, questo è un modo valido per generare una sequenza antependente di lunghezza 4:
1
21 [beginning]
213 [end]
2134 [end]
Il tuo compito è costruire un programma o una funzione che prenderà un numero n
da 3
a 30
come input, e stampare o restituire tutte le sequenze antependenti di lunghezza n
in ordine lessicografico (se stai producendo stringhe e non elenchi, i numeri sopra 9 saranno rappresentati come lettere a-u
, per preservare la lunghezza della stringa). Ad esempio, questo è quell'ordine pern = 4
:
1234 [RRR]
2134 [LRR]
3124 [RLR]
3214 [LLR]
4123 [RRL]
4213 [LRL]
4312 [RLL]
4321 [LLL]
In generale, ci sono 2 n-1 permutazioni di lunghezza appendice prepend n
.
Non è possibile utilizzare alcuna funzione di ordinamento integrata nella propria lingua nel proprio codice. Vince il programma più breve per farlo in qualsiasi lingua.
a-u
. Possiamo semplicemente produrre liste di numeri?