Tujuan
Anda diberi integer n
( n > 1
). Anda harus keluaran berapa banyak permutasi dari bilangan bulat 1
untuk n
ada yang mulai 1
, berakhir pada n
, dan tidak memiliki dua bilangan bulat berturut-turut yang berbeda dengan 1.
Atau, jika Anda mengambil grafik lengkap K_n
dan menghapus tepi jalan 1-2-3-...-n
Anda harus menghitung jalur Hamiltonian dari 1
ke n
dalam grafik yang tersisa.
Contoh-contoh akan digunakan f(n)
untuk fungsi yang menerima n
dan mengeluarkan jumlah permutasi yang valid, tetapi kiriman Anda bisa berupa fungsi atau program.
Contohnya
Sebab n = 6
, solusi yang mungkin adalah1-3-5-2-4-6
Namun, 1-3-5-2-6-4
ini bukan solusi yang valid karena tidak berakhir dengan 6
.
Bahkan, untuk n = 6
, hanya ada 2 solusi ( 1-4-2-5-3-6
yang lain).
Oleh karena itu f(6) = 2
.
Untuk n = 4
satu-satunya permutasi yang dimulai 1
dan diakhiri 4
adalah 1-2-3-4
dan 1-3-2-4
. Di keduanya 2
berdekatan dengan 3
, memberikan bilangan bulat berturut-turut yang berbeda dengan 1. Oleh karena itu f(4) = 0
.
Uji kasus
f(6) = 2
f(4) = 0
f(8) = 68
f(13) = 4462848
Kriteria menang
Ini adalah kode-golf, jawaban terpendek menang.
Q_ser:=z + 2 z^6 + 10 z^7 + 68 z^8 + 500 z^9 + 4174 z^10 + 38774 z^11 + 397584z^12 + 4462848 z^13 + 54455754 z^14
saya menghabiskan beberapa waktu sekarang mencoba menggunakan rumus, tetapi saya tidak dapat membuat satu yang menghasilkan urutan. Luar biasa melihat eksponen z adalah input rumus dan hasilnya adalah faktor multiplikasi. Yang bagaimana dapat menyimpulkan rumus dari sana mungkin ada satu dengan jawaban terpendek dalam byte
[2..n-1]
mengandung delta1
atau-1
, Anda juga harus memeriksa bahwa tidak ada permutasi yang dimulai2
atau diakhiri dengann-1
...