Просматривая веб-страницы, я столкнулся с математической проблемой, которая ставила математиков в тупик с 1937 года. Сама простота этой задачи означает, что даже ребенок может понять ее, но ее невозможно доказать даже лучшими специалистами; просто и, как выразился Пол Эрдош, «математика может быть не готова к таким задачам». Это означает, что мы не знаем достаточно, чтобы доказать гипотезу с помощью наших текущих знаний, но будущие достижения в математике могут позволить нам, наконец, решить ее.

Гипотеза определяет последовательность, в которой первый член - n. Если n четное, следующим термином будет n / 2. Если n нечетное, то следующий член будет 3n + 1. Это повторяется, поэтому каждый последующий срок подчиняется одному и тому же правилу. В обозначении функций проблема может быть представлена ​​так:

Так что же такого особенного? Гипотеза утверждает, что для любого положительного целого числа [n] процесс / последовательность в конечном итоге достигнет 1. Числа были проверены компьютером для всех начальных значений до 87 * 2⁶⁰, которые все подтверждают гипотезу, но, тем не менее, никто не смог доказать это для всех значений. Для представления этой проблемы были составлены древовидные диаграммы, и кажется, что эти деревья когда-либо расширяются.

Если мы воспользуемся аналогией с деревом, мы сможем проанализировать дерево дальше. Каждый плод на дереве представляет собой набор, и каждая ветвь [стрелка] соединяет 2 набора вместе. Как показано на приведенной выше диаграмме, каждый набор будет иметь нечетное число в качестве основы, и каждый следующий член выше - это нечетное число * 2 в степени [n-1], при условии, что каждый набор является последовательностью, то есть: {3: 6, 12, 24,…}. Начиная с 1, каждое следующее нечетное число будет отдельным набором, и число в этом наборе будет расти экспоненциально, поэтому все дерево растет очень и очень быстро. Я не заметил никаких других тенденций, поэтому я должен оставить эту проблему на этом, но это не помешало мне прогрессировать в развитии моих навыков программирования.

Как программист и исследуя эту проблему, я создал машину Коллатца. Простая алгоритмическая программа, которая принимает вводимые пользователем данные и возвращает последовательность терминов от ввода до 1 за считанные секунды. Красота программирования. Я тестировал его с числами разной длины, и он довольно быстро возвращает результат. Чем больше число, тем больше времени требуется, поскольку требуется больше шагов, чтобы перейти от самого себя к 1. Но это довольно увлекательная функция.

На этом я заканчиваю свое путешествие на этой дилемме и приступаю к новому проекту, который, надеюсь, не так уж и невозможен.