На днях узнал о существовании гипотезы Коллатца и по этому поводу появилась небольшая заметка: "Гипотеза Коллатца - это необыкновенный математический сюрприз".
Например, возьмем любое натуральное число. Затем, если это число четное, то необходимо разделить его на два. А если число нечетное, то необходимо умножить его на три и прибавить единицу. Потом повторяем аналогично указанные выше действия по отношению с числом, которое образовалось от деления на два или умножения на три и прибавления единицы. В конечном счете все эти шаги приведут к тому, что в конце получится единица.
Я не математик и не программист, но во время своей работы до пенсии мне приходилось работать с таблицами Excel для Windows 95 версии 7.0. В свое время научился в этих таблицах использовать макросы для обработки информации в таблицах.
И вот теперь решил проверить верность гипотезы Коллатца с использованием таблиц Excel для чисел в интервале от 1 до 1 000 000.
В таблице Excel всего 256 столбцов, поэтому решил использовать для ровного счета только 250 столбцов. В ячейку каждого столбца записывал число, которое было больше соседнего на единицу.
После записи числа в ячейку столбца проводил с ним соответствующие операции, т.е. делил на 2 или умножал на 3 и прибавлял 1, пока не получалась единица. После этого переходил к следующему числу.
У меня получилось 4 000 таблиц по 250 чисел (4 000 * 250 = 1 000 000). Вот эти таблицы:
Если открыть таблицу №1, то взору предстанет такая картина:
Если открыть последнюю таблицу № 4000, то цифры будут уже шестизначные:
Вся процедура обработки 1 000 000 чисел заняла по времени 4 часа 4 минуты 1 секунду. Эта временная информация зафиксировалась на счетчике времени, который начал свой отсчет с первого числа и остановился после обработки 1 000 000 числа.
Кроме таблиц с числами использовалась еще одна таблица, в которой записывалось одно число из 250 с максимальным количеством шагов.
На экране умещается только 50 строк из этой таблицы. Если делать фото каждые 50 строк, то получится 80 фото (4000 : 50). Для Дзена это, наверное, будет многовато. Поэтому отсортировал эту таблицу от максимума шагов к минимуму. И вот что у меня получилось:
Проверил количество шагов у числа 837799 с помощью макроса, который использовал здесь:
Для интересующихся сделал ZIP архив этих 4000 таблиц на Яндекс.Диске.
Для чисел от 1 до 1 000 000 гипотеза Коллатца работает без ошибок :)