Сьогодні ми розглянемо послідовність a , пов'язану з функцією Collatz f :
Ми називаємо послідовність виду г, ф (г), F (F (Z)), ... в послідовності Коллатц .
Перше число в нашій послідовності, (1) , дорівнює 0 . При повторному застосуванні f вона потрапляє в цикл 0 → 0 →…
Найменше число, якого ми ще не бачили, - це 1, що складає (2) = 1 . При повторному застосуванні f вона потрапляє в цикл 1 → 4 → 2 → 1 →…
Тепер ми побачили число 2 у циклі вище, тому наступне найменше число - це (3) = 3 , потрапляючи в цикл 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 → 4 → 2 → 1 →…
У всіх вище циклах ми вже бачили 4 і 5 , тому наступне число - це (4) = 6 .
На даний момент ви повинні отримати ідею. a (n) - найменше число, яке не входило до жодної послідовності Колатца для всіх a (1),…, a (n - 1) .
Напишіть програму або функцію, яка за заданим цілим числом n повертає a (n) . Найкоротший код у байтах виграє.
Тести:
1 -> 0
2 -> 1
3 -> 3
4 -> 6
5 -> 7
6 -> 9
7 -> 12
8 -> 15
9 -> 18
10 -> 19
50 -> 114
(Це послідовність OEIS A061641 .)
n
базуватися на 0?
a(n+1) = a(n) odd: 3*a(n)+1, or a(n) even: a(n)/2
a
немає на основі 0, я не розумію, чому ви, здається, тут "розмовляєте на базі 0":a(n) is the smallest number that was not part of any Collatz sequences for all a(0), …, a(n − 1).