Defina uma sequência de comprimento de pré-acréscimo-acréscimon para ser uma permutação dos números 1, 2, ..., nque podem ser gerados pelo seguinte procedimento:
Comece com o número
1.Para cada número a partir
2den, colocar este número para o início ou no final da sequência (quer preceder ou acrescentar que, daí o nome da sequência).
Por exemplo, esta é uma maneira válida de gerar uma sequência de pré-acréscimo-acréscimo de comprimento 4:
1
21 [beginning]
213 [end]
2134 [end]
Sua tarefa é criar um programa ou função que levará um número nde 3para 30como entrada e imprimir ou retornar todas as sequências de comprimento de pré-apêndice a fim nem ordem lexicográfica (se você estiver produzindo seqüências de caracteres e não listas, os números acima de 9 serão representados como letras a-u, para preservar o comprimento da string). Por exemplo, é esse pedido para n = 4:
1234 [RRR]
2134 [LRR]
3124 [RLR]
3214 [LLR]
4123 [RRL]
4213 [LRL]
4312 [RLL]
4321 [LLL]
Em geral, existem 2 permutações de comprimento pré-anexado n-1n .
Você não pode usar nenhuma função de classificação interna no seu idioma no seu código. O programa mais curto para fazer isso em qualquer idioma vence.
a-u. Podemos apenas produzir listas de números?