Гипотеза Коллатца может быть кратко выражена следующим образом:
Берём любое натуральное число n, если оно чётное, то делим его n / 2 если нечётное, то умножаем на 3 и прибавляем 1 (получаем 3n + 1) над полученным числом выполняем те же самые действия, и так далее.
Гипотеза Коллатца заключается в том, что какое бы начальное число n мы ни взяли, рано или поздно мы получим единицу.
Пример
Для числа 12:
12
6
3
10
5
16
8
4
2
1
Всего получаем 9 шагов.Задача Вычислить число шагов для числа n, согласно гипотезе Коллатца необходимых для достижения этим числом единицы.
def collatz(n, c=0):
print(int(n))
if (n == 1): return "Всего шагов: {}".format(c)
return collatz(n/2, c + 1) if (n % 2 == 0) else collatz(3*n + 1, c + 1)
print(collatz(27))