Intro
Urutan Switching didefinisikan seperti ini:
Mulailah dengan n
orang - orang yang berdiri dalam lingkaran ( 6
untuk contoh ini).
1 2
6 3
5 4
Mulai dari orang 1
, orang yang ada di sebelah kiri orang yang "dipilih" dihapus.
1
6 3
5 4
Orang yang dihapus dapat "mengalihkan" metode penghapusan ke atas:
- Jika orang yang dilepas itu genap (dalam kasus ini), orang yang dipindahkan berikutnya akan berada di sebelah kanan orang "terpilih" berikutnya.
- Jika orang yang dipindahkan itu aneh, orang yang dihapus berikutnya akan berada di sebelah kiri orang "terpilih" berikutnya.
Orang yang dipilih berikutnya juga tergantung pada orang yang sebelumnya dihapus.
- Jika orang yang dilepas itu genap, orang yang dipilih berikutnya akan berada di sebelah kanan orang yang dipilih sebelumnya.
- Jika orang yang dipindahkan itu aneh, lihat di atas, tetapi ganti "kanan" dengan "kiri".
Jadi orang yang dipilih selanjutnya adalah 6
.
Sekarang kami menghapus orang di sebelah kanan 6
, yaitu 5
:
1
6 3
4
Karena 5
aneh, orang yang dipindahkan sekarang ke kiri. Orang yang baru terpilih adalah 1
.
Kami sekarang menghapus 3
:
1
6
4
Kami melanjutkan proses ini, hingga tersisa 1 angka - dalam contoh ini, angka terakhirnya adalah 1
. Oleh karena itu S(6) = 1
.
Beberapa angka pertama adalah:
n | S(n)
---------
1 | 1
2 | 1
3 | 3
4 | 1
5 | 5
6 | 1
7 | 3
8 | 6
9 | 5
10 | 6
11 | 9
Tugas
Tugas Anda adalah membuat program (atau fungsi) yang mengembalikan S(n)
( n
nomor th dalam urutan Switching) saat diberikan n
, menggunakan jumlah byte terkecil.
Contoh input dan output:
1 -> 1
10 -> 6
13 -> 13
Anda dijamin mendapatkan bilangan bulat positif.
Ini adalah kode-golf , jadi kode terpendek dalam byte menang!
Catatan: Tidak ada urutan OEIS (apa?), Untuk menyelamatkan Anda dari kesulitan mencari.
2
tidak pernah ada, tetapi tidak 7
?