Latar Belakang
Sebuah urutan fraktal adalah urutan bilangan bulat di mana Anda dapat menghapus kejadian pertama dari setiap bilangan bulat dan berakhir dengan urutan yang sama seperti sebelumnya.
Urutan seperti itu sangat sederhana disebut parafrase Kimberling . Anda mulai dengan bilangan asli positif:
1, 2, 3, 4, 5, 6, 7, 8, 9, ...
Kemudian Anda mengosongkan beberapa bagian:
1, _, 2, _, 3, _, 4, _, 5, _, 6, _, 7, _, 8, _, 9, ...
Dan kemudian Anda berulang kali mengisi bagian yang kosong dengan urutannya sendiri (termasuk bagian yang kosong):
1, 1, 2, _, 3, 2, 4, _, 5, 3, 6, _, 7, 4, 8, _, 9, ...
1, 1, 2, 1, 3, 2, 4, _, 5, 3, 6, 2, 7, 4, 8, _, 9, ...
1, 1, 2, 1, 3, 2, 4, 1, 5, 3, 6, 2, 7, 4, 8, _, 9, ...
1, 1, 2, 1, 3, 2, 4, 1, 5, 3, 6, 2, 7, 4, 8, 1, 9, ...
Itu urutan fraktal kami! Sekarang mari kita ambil jumlah parsial:
1, 2, 4, 5, 8, 10, 14, 15, 20, 23, 29, 31, 38, 42, 50, 51, 60, ...
Tetapi bagaimana jika kita mengulangi proses ini? "Fraktalise" urutan baru (yaitu jumlah parsial yang diperoleh dari langkah-langkah di atas):
1, _, 2, _, 4, _, 5, _, 8, _, 10, _, 14, _, 15, _, 20, _, 23, ...
1, 1, 2, _, 4, 2, 5, _, 8, 4, 10, _, 14, 5, 15, _, 20, 8, 23, ...
1, 1, 2, 1, 4, 2, 5, _, 8, 4, 10, 2, 14, 5, 15, _, 20, 8, 23, ...
1, 1, 2, 1, 4, 2, 5, 1, 8, 4, 10, 2, 14, 5, 15, _, 20, 8, 23, ...
1, 1, 2, 1, 4, 2, 5, 1, 8, 4, 10, 2, 14, 5, 15, 1, 20, 8, 23, ...
Dan ambil jumlah parsial lagi:
1, 2, 4, 5, 9, 11, 16, 17, 25, 29, 39, 41, 55, 60, 75, 76, 96, ...
Bilas, ulangi. Ternyata proses ini menyatu. Setiap kali Anda mengulangi proses ini, awalan yang lebih besar dari urutan akan tetap diperbaiki. Setelah jumlah iterasi yang tak terbatas, Anda akan berakhir dengan OEIS A085765 .
Fakta menyenangkan: Proses ini akan menyatu ke urutan yang sama bahkan jika kita tidak memulai dari bilangan asli selama urutan awal dimulai 1. Jika urutan asli dimulai dengan yang lain x, kami akan mendapatkannyax*A085765 sebagai gantinya.
Tantangan
Diberikan bilangan bulat positif N, output Nelemen th dari urutan konvergen.
Anda dapat menulis sebuah program atau fungsi, mengambil input melalui STDIN (atau alternatif terdekat), argumen baris perintah atau argumen fungsi dan mengeluarkan hasilnya melalui STDOUT (atau alternatif terdekat), nilai pengembalian fungsi atau parameter function (out).
Anda dapat memilih apakah indeks N berbasis 0 atau 1.
Uji Kasus
Urutan dimulai dengan:
1, 2, 4, 5, 9, 11, 16, 17, 26, 30, 41, 43, 59, 64, 81, 82, 108, 117, 147, 151, 192, 203, 246, 248, 307, 323, 387, 392, 473, 490, 572, 573, 681, 707, 824, 833, 980, 1010, 1161, 1165, 1357, 1398, 1601, 1612, 1858, 1901, 2149, 2151, 2458, 2517
Jadi input 5harus menghasilkan output9 .
Berikut ini adalah implementasi referensi CJam yang naif yang menghasilkan Nangka pertama (diberikan Npada STDIN). Perhatikan bahwa kode Anda hanya mengembalikan Nelemen th, bukan keseluruhan awalan.
Nistilah th dari A085765 , benar?