Hôm nay chúng ta sẽ xem xét một chuỗi a , liên quan đến chức năng Collatz f :
Chúng tôi gọi một chuỗi có dạng z, f (z), f (f (z)), một chuỗi Collatz .
Số đầu tiên trong chuỗi của chúng tôi , a (1) , là 0 . Theo ứng dụng lặp lại của f , nó rơi vào chu kỳ 0 → 0 →
Số nhỏ nhất chúng tôi chưa thấy là 1, tạo một (2) = 1 . Dưới ứng dụng lặp lại của f , nó rơi vào chu kỳ 1 → 4 → 2 → 1 → Cách
Bây giờ chúng ta đã thấy số 2 trong chu kỳ trên, vì vậy số nhỏ nhất tiếp theo là a (3) = 3 , rơi vào chu kỳ 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 → 4 → 2 → 1 →
Trong tất cả các chu kỳ trên, chúng ta đã thấy 4 và 5 rồi, nên số tiếp theo là a (4) = 6 .
Bây giờ bạn sẽ có được ý tưởng. a (n) là số nhỏ nhất không phải là một phần của bất kỳ chuỗi Collatz nào cho tất cả a (1), Vượt, a (n - 1) .
Viết chương trình hoặc hàm, cho số nguyên dương n , trả về a (n) . Mã ngắn nhất trong byte thắng.
Testcase:
1 -> 0
2 -> 1
3 -> 3
4 -> 6
5 -> 7
6 -> 9
7 -> 12
8 -> 15
9 -> 18
10 -> 19
50 -> 114
(Đây là trình tự OEIS A061641 .)
n
có thể dựa trên 0 không?
a(n+1) = a(n) odd: 3*a(n)+1, or a(n) even: a(n)/2
a
không dựa trên 0, tôi không hiểu tại sao bạn dường như "nói 0 dựa trên" ở đây:a(n) is the smallest number that was not part of any Collatz sequences for all a(0), …, a(n − 1).