pengantar
Tentu saja, kita punya banyak tantangan urutan , jadi ini satu lagi.
Urutan Kimberling ( A007063 ) berlaku sebagai berikut:
1, 3, 5, 4, 10, 7, 15, 8, 20, 9, 18, 24, 31, 14, 28, 22, ...
Ini diproduksi dengan mengocok iterasi normal:
[1] 2 3 4 5 6 7 8
Istilah pertama dari urutan tersebut adalah 1
. Setelah itu, kami merombak urutan sampai semua istilah di sebelah kiri digunakan. Pengocokan memiliki pola right - left - right - left - ...
. Karena tidak ada istilah di sebelah kiri 1
, tidak ada pengocokan. Kami mendapatkan yang berikut ini:
2 [3] 4 5 6 7 8 9
Pada iterasi ke- i , kami membuang item ke- i dan meletakkannya di urutan kami. Ini adalah iterasi ke - 2 , jadi kami membuang item ke - 2 . Urutan menjadi: 1, 3
. Untuk iterasi kami berikutnya, kami akan mengocok iterasi saat ini dengan pola di atas. Kami mengambil item yang tidak digunakan pertama di sebelah kanan item ke- i . Ini terjadi 4
. Kami akan menambahkan ini ke iterasi baru kami:
4
Sekarang kita akan mengambil item yang tidak digunakan pertama di sebelah kiri item ke- i . Ini 2
. Kami akan menambahkan ini ke iterasi baru kami:
4 2
Karena tidak ada item yang tersisa di sebelah kiri item ke- i , kami hanya akan menambahkan sisa urutan ke iterasi baru:
4 2 [5] 6 7 8 9 10 11 ...
Ini adalah iterasi ke - 3 kami , jadi kami akan membuang item ke - 3 , yaitu 5
. Ini adalah item ketiga dalam urutan kami:
1, 3, 5
Untuk mendapatkan iterasi berikutnya, ulangi saja prosesnya. Saya sudah membuat gif jika tidak jelas:
Gif itu membuat saya lebih lama daripada menulis posting sebenarnya
Tugas
- Dengan bilangan bulat n -negatif , hasilkan n syarat pertama dari urutan
- Anda dapat menyediakan fungsi atau program
- Ini adalah kode-golf , jadi pengiriman dengan jumlah byte paling sedikit menang!
Kasus uji:
Input: 4
Output: 1, 3, 5, 4
Input: 8
Output: 1, 3, 5, 4, 10, 7, 15, 8
Input: 15
Output: 1, 3, 5, 4, 10, 7, 15, 8, 20, 9, 18, 24, 31, 14, 28
Catatan: Koma dalam output tidak perlu. Misalnya, Anda dapat menggunakan baris baru, atau menampilkan daftar, dll.