Daftar menggambarkan diri secara siklis
Daftar bilangan bulat positif menggambarkan diri secara siklis , jika kondisi berikut ini berlaku.
- tidak kosong.
- Elemen pertama dan terakhir berbeda.
- Jika Anda membagi menjadi run dari elemen yang sama, elemen dari setiap run sama dengan panjang run berikutnya, dan elemen dari run terakhir sama dengan panjang run pertama.
Sebagai contoh, pertimbangkan . Itu nonempty, dan elemen pertama dan terakhir berbeda. Ketika kita memecahnya menjadi run, kita mendapatkan .
- Run pertama adalah run detik, dan panjang run berikutnya, , adalah .
- Run kedua adalah run detik, dan panjang run berikutnya, , adalah .
- Run ketiga adalah run detik, dan panjang run berikutnya, , adalah .
- Run keempat adalah run detik, dan panjang run berikutnya, , adalah .
- Akhirnya, putaran terakhir adalah putaran detik, dan panjang putaran pertama, , adalah .
Ini berarti bahwa adalah daftar yang menggambarkan dirinya secara siklis.
Sebagai contoh, daftar tidak menggambarkan diri secara siklikal, karena run s diikuti oleh run of length . Daftar juga tidak menggambarkan secara siklikal, karena putaran terakhir adalah putaran detik, tetapi putaran pertama memiliki panjang .
Tugas
Dalam tantangan ini, input Anda adalah bilangan bulat . Output Anda akan menjadi jumlah daftar yang menggambarkan diri secara siklis yang jumlahnya sama dengan . Sebagai contoh, harus menghasilkan , karena daftar yang menggambarkan diri secara siklis dengan jumlah adalah , , dan . Hitungan byte terendah menang, dan aturan kode-golf standar lainnya berlaku.
Berikut adalah nilai output yang benar untuk input dari hingga :
1 -> 0
2 -> 0
3 -> 0
4 -> 2
5 -> 0
6 -> 2
7 -> 0
8 -> 4
9 -> 0
10 -> 6
11 -> 6
12 -> 12
13 -> 0
14 -> 22
15 -> 10
16 -> 32
17 -> 16
18 -> 56
19 -> 30
20 -> 96
21 -> 56
22 -> 158
23 -> 112
24 -> 282
25 -> 198
26 -> 464
27 -> 364
28 -> 814
29 -> 644
30 -> 1382
31 -> 1192
32 -> 2368
33 -> 2080
34 -> 4078
35 -> 3844
36 -> 7036
37 -> 6694
38 -> 12136
39 -> 12070
40 -> 20940
41 -> 21362
42 -> 36278
43 -> 37892
44 -> 62634
45 -> 67154
46 -> 108678
47 -> 118866
48 -> 188280
49 -> 209784
50 -> 326878
n,1,...,1
, dan setiap bilangan ganjil lebih besar dari 13 dapat diperoleh dengan menggabungkan 3,2,2,2,1,1
ke bilangan genap. Bukti bahwa 13 tidak mungkin dibiarkan sebagai latihan bagi pembaca.