Mathematica, 50 -> 47 -> 42 байти
p = Join[Range[2, #, 2], Range[1, #, 2]] &
Спробуйте в Інтернеті!
Завдяки user202729 за вказівку на подвійний потенціал оптимізації Приєднайтесь до [], відчувши Flatten [] та використовуючи чисті функції.
Я хотів би додати два зауваження.
1) Досить просто побудувати конкретну перестановку без спадаючої або зростаючої послідовності при n> = 4, як вимагається n ОП.
Він складається з двох послідовних списків.
Для парних n це:
list1 = (2,4, ..., n / 2)
list2 = (1,3, ..., n / 2-1)
Для непарних n маємо:
list1 = (2,4, ..., поверх [n / 2])
list2 = (1,3, ..., поверх [n / 2])
Для цього "алгоритму" потрібно прийняти лише одне рішення (n парне чи непарне), решта - лише записування n чисел.
Можливе рішення Mathematica надано вгорі.
2) Пов'язане питання - скільки таких перестановок існує як функція n.
Математика, 124 байти
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]
Спробуйте в Інтернеті!
Приклад:
a[#] & /@ Range[4, 12]
{2, 14, 90, 646, 5242, 47622, 479306, 5296790, 63779034}
Підрахунок кількості таких перестановок є стандартною проблемою.
Для n = 4 є 2: {{2,4,1,3}, {3,1,4,2}}
Для n = 5 є 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}}
Кількість a (n) цих перестановок швидко зростає: 2, 14, 90, 646, 5242, 47622, 479306, 5296790, 63779034, ...
Для великих n відношення a (n) / n! Здається, наближається до межі 1 / e ^ 2 = 0,135335 ... Я не маю суворих доказів, але це лише припущення з числових доказів. Ви можете перевірити це, спробувавши запустити програму в Інтернеті.
Програма вище (на основі наведеної нижче посилання) обчислює ці числа.
Додаткову інформацію можна знайти у відповідній послідовності на OEIS: A002464 . Проблема Герцпрунга: способи розташування n королів, що не атакують, на n X n дошці, по 1 у кожному рядку та стовпці. Також кількість перестановок довжиною n без послідовностей підйому чи падіння.