Mathematica, 50 -> 47 -> 42 bajty
p = Join[Range[2, #, 2], Range[1, #, 2]] &
Wypróbuj online!
Podziękowania dla user202729 za zwrócenie uwagi na podwójny potencjał optymalizacji Dołącz [] do Flatten [] i używania czystych funkcji.
Chciałbym dodać dwie uwagi.
1) Zbudowanie konkretnej permutacji bez spadającej lub rosnącej sukcesji jest dość proste dla n> = 4, zgodnie z żądaniem n PO.
Składa się z dwóch kolejnych list.
Dla parzystych n są to:
lista1 = (2,4, ..., n / 2)
lista2 = (1,3, ..., n / 2-1)
Dla nieparzystych n mamy:
list1 = (2,4, ..., Floor [n / 2])
list2 = (1,3, ..., Floor [n / 2])
Dla tego „algorytmu” musi zostać podjęta tylko jedna decyzja (n parzysta lub nieparzysta), reszta to po prostu zapisanie n liczb.
Możliwe rozwiązanie Mathematica znajduje się u góry.
2) Powiązanym pytaniem jest, ile takich permuacji istnieje w funkcji n.
Mathematica, 124 bajty
a[0] = a[1] = 1; a[2] = a[3] = 0;
a[n_] := a[n] = (n + 1)*a[n - 1] - (n - 2)*a[n - 2] - (n - 5)*a[n - 3] + (n - 3)*a[n - 4]
Wypróbuj online!
Przykład:
a[#] & /@ Range[4, 12]
{2, 14, 90, 646, 5242, 47622, 479306, 5296790, 63779034}
Liczenie liczby takich permutacji jest standardowym problemem.
Dla n = 4 są 2: {{2,4,1,3}, {3,1,4,2}}
Dla n = 5 jest 14: {{1,3,5,2,4}, {1,4,2,5,3}, {2,4,1,3,5}, {2,4, 1,5,3}, {2,5,3,1,4}, {3,1,4,2,5}, {3,1,5,2,4}, {3,5,1, 4,2}, {3,5,2,4,1}, {4,1,3,5,2}, {4,2,5,1,3}, {4,2,5,3, 1}, {5,2,4,1,3}, {5,3,1,4,2}}
Liczba a (n) tych permutacji szybko rośnie: 2, 14, 90, 646, 5242, 47622, 479306, 5296790, 63779034, ...
Dla dużego n stosunek a (n) / n! wydaje się zbliżać do granicy 1 / e ^ 2 = 0,135335 ... Nie mam ścisłego dowodu, ale jest to tylko przypuszczenie z dowodów numerycznych. Możesz to przetestować, próbując uruchomić program online.
Powyższy program (na podstawie podanego poniżej odniesienia) oblicza te liczby.
Więcej informacji można znaleźć w odpowiedniej sekwencji na OEIS: A002464 . Problem Hertzsprunga: sposoby ułożenia n nieatakujących królów na planszy n X n, z 1 w każdym rzędzie i kolumnie. Również liczba permutacji o długości n bez rosnących lub malejących sukcesji.