Hari ini kita akan melihat urutan a , terkait dengan fungsi Collatz f :
Kami menyebutnya urutan bentuk z, f (z), f (f (z)), ... suatu urutan Collatz .
Angka pertama dalam urutan kami , a (1) , adalah 0 . Di bawah aplikasi berulang f , ia jatuh ke dalam siklus 0 → 0 →…
Angka terkecil yang belum kita lihat adalah 1, menghasilkan (2) = 1 . Di bawah penerapan berulang f , ia jatuh ke dalam siklus 1 → 4 → 2 → 1 →…
Sekarang kita telah melihat angka 2 dalam siklus di atas, sehingga angka terkecil berikutnya adalah a (3) = 3 , termasuk dalam siklus 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 → 4 → 2 → 1 → ...
Dalam semua siklus di atas kita telah melihat 4 dan 5 sudah, jadi angka selanjutnya adalah (4) = 6 .
Sekarang Anda harus mendapatkan ide. a (n) adalah angka terkecil yang bukan bagian dari urutan Collatz untuk semua (1), ..., a (n - 1) .
Tulis program atau fungsi yang, dengan bilangan bulat positif n , mengembalikan a (n) . Kode terpendek dalam byte menang.
Testcases:
1 -> 0
2 -> 1
3 -> 3
4 -> 6
5 -> 7
6 -> 9
7 -> 12
8 -> 15
9 -> 18
10 -> 19
50 -> 114
(Ini adalah urutan OEIS A061641 .)
n
berbasiskan 0?
a(n+1) = a(n) odd: 3*a(n)+1, or a(n) even: a(n)/2
a
tidak berbasis 0, saya tidak mengerti mengapa Anda tampaknya "berbicara berbasis 0" di sini:a(n) is the smallest number that was not part of any Collatz sequences for all a(0), …, a(n − 1).