Mathematica, 50 -> 47 -> 42 byte
p = Join[Range[2, #, 2], Range[1, #, 2]] &
Cobalah online!
Terima kasih kepada pengguna202729 untuk menunjukkan potensi pengoptimalan dua kali lipat Bergabung [] dipasang pada Flatten [] dan menggunakan fungsi murni.
Saya ingin menambahkan dua komentar.
1) Cukup mudah untuk membangun permutasi spesifik tanpa penurunan atau peningkatan suksesi untuk n> = 4 seperti yang diminta pada OP.
Ini terdiri dari dua daftar berturut-turut.
Untuk genap n ini adalah:
list1 = (2,4, ..., n / 2)
list2 = (1,3, ..., n / 2-1)
Untuk ganjil dan n kita memiliki:
list1 = (2,4, ..., Lantai [n / 2])
list2 = (1,3, ..., Lantai [n / 2])
Untuk "algoritma" ini, hanya satu keputusan yang harus dibuat (n genap atau ganjil), sisanya hanya menuliskan n angka.
Kemungkinan solusi Mathematica disediakan di bagian atas.
2) Pertanyaan terkait adalah berapa banyak izin seperti itu ada sebagai fungsi dari n.
Mathematica, 124 Bytes
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]
Cobalah online!
Contoh:
a[#] & /@ Range[4, 12]
{2, 14, 90, 646, 5242, 47622, 479306, 5296790, 63779034}
Untuk menghitung jumlah permutasi tersebut merupakan masalah standar.
Untuk n = 4 ada 2: {{2,4,1,3}, {3,1,4,2}}
Untuk n = 5 ada 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}}
Jumlah a (n) dari permutasi ini naik dengan cepat: 2, 14, 90, 646, 5242, 47622, 479306, 5296790, 63779034, ...
Untuk n besar rasio a (n) / n! tampaknya mendekati batas 1 / e ^ 2 = 0,135335 ... Saya tidak punya bukti ketat tetapi itu hanya dugaan dari bukti numerik. Anda dapat menguji ini dengan mencoba menjalankan program secara online.
Program di atas (berdasarkan referensi yang diberikan di bawah) menghitung angka-angka ini.
Anda dapat menemukan informasi lebih lanjut dalam urutan yang relevan di OEIS: A002464 . Masalah Hertzsprung: cara untuk mengatur dan tidak menyerang raja di papan xx, dengan 1 di setiap baris dan kolom. Juga jumlah permutasi panjang n tanpa naik atau turunnya suksesi.