Гипотеза Коллатца

Nov 10, 2024

Гипотеза Коллатца

Для объяснения сути гипотезы рассмотрим следующую последовательность чисел, называемую сираку́зской после́довательностью. Берём любое натуральное число n. Если оно чётное, то делим его на 2, а если нечётное, то умножаем на 3 и прибавляем 1 (получаем 3n + 1). Над полученным числом выполняем те же самые действия, и так далее. Гипотеза Коллатца заключается в том, что какое бы начальное число n мы ни взяли, рано или поздно мы получим единицу.

Например, для числа 3 получаем:

  • 3 — нечётное, 3×3 + 1 = 10
  • 10 — чётное, 10:2 = 5
  • 5 — нечётное, 5×3 + 1 = 16
  • 16 — чётное, 16:2 = 8
  • 8 — чётное, 8:2 = 4
  • 4 — чётное, 4:2 = 2
  • 2 — чётное, 2:2 = 1
  • 1 — нечётное.

Эту функция которая реализует последовательность действий, и как следствие доказывает гипотезу. Можете сами проверить !

def collatz(x):
    yield x
    while x != 1:
        x = (3 * x + 1) if (x % 2) else (x // 2)
        yield x

print(*collatz(114))

Такие дела...

Ivan Goncharov