Статья Автор: Лебедев Дмитрий

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

TUZ_2-04 Поиск решения обратной гипотезы Коллатца

Гипотеза Коллатца
Гипотеза Коллатца – это математическое утверждение, согласно которому любое натуральное число , преобразованное по следующему правилу :
\(n = \begin{cases} n/2 & \quad \text{if } n \text{%2 == 0}\\ 3\cdot n+1 & \quad \text{if } n \text{%2 == 1 } \end{cases} \)
в конечном итоге достигнет числа 1 после конечного числа шагов.
Напишите программу, которая проверяет гипотезу Коллатца для конкретного числа и выводит "путь к 1"
 



На рисунке представленя визуализация действия алгоритма Коллатца

Для каждого натурального числа N можно однозначно оперделить:
  • последовательность команад, применение которой приводит данное число к 1;
  • длину этой послеловательности;
  • максимальное число в этой последовательности (пик );
  • максимальную степень числа 2 в этой последовательности (последний пик);
  • и т.д.
 Попробуем построить последовательность команд для числа n:
- команду 3n+1 будем кодировать буквой u (up), а команду n//2 буквой d (down)
Пример:  13 u 40 d 20 d 10 d 5 u 16 d 8 d 4 d 2 d 1 = udddudddd
Легко видеть, что  "последовательности команд"  выполняется:
  • не может быть двух u подряд;
  • последний отрезок состоит из четного числа букв d (почему? докажите?)
  • попробуйте найти ещё какие-то закономерности
Напишите программу, которая по исходному числу n получает "последовательность команд" 



В тетради TUZ_2-04 Поиск решения обратной гипотезы Коллатца рассматривается вопрос как проверить произвольную последовательность на соответствие "последовательности команд" и найти число, создающую данную последовательность.
 
Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать