Сегодня мы рассмотрим последовательность а , связанную с функцией Коллатца f :
Мы называем последовательность вида г, ф (г), F (F (Z)), ... в последовательности Коллатца .
Первое число в нашей последовательности, a (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) . Самый короткий код в байтах побеждает.
Testcases:
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).