Dmitriy40Спасибо вам очень большое, за ваши вопросы. Я знаю, насколько это тяжело разобраться в чужой работе. Респект вам.
И вам
tolstopuz, тоже благодарность. Это моя вина, что статья получилась скомканная.
Это первая часть. Сейчас сосредоточился на написании второй части.
То, что написано в первой части - каждая строчка достоверна. Всё работает как часы. Проверено на миллионах последовательностях Коллатца. Проверено на компьютере.
Вот фрагмент кода. Его нужно запускать рекурсивно:
(Оффтоп)
Код:
Процедура ПрименитьПравила(n)
Если (n % 3 = 1) Тогда
ПервоеЧисло = (4*n - 1)/3;
ВтороеЧисло = 4*n + 1;
КонецЕсли;
Если (n % 3 = 2) Тогда
ПервоеЧисло = (2*n - 1)/3;
ВтороеЧисло = 4*n + 1;
КонецЕсли;
Если (n % 3 = 0) Тогда
ПервоеЧисло = 0; // хвост рекурсии
ВтороеЧисло = 4*n + 1;
КонецЕсли;
ДобавитьНовоеЗначениеВТаблицу(ПервоеЧисло);
ДобавитьНовоеЗначениеВТаблицу(ВтороеЧисло);
КонецПроцедуры
Такая рекурсия покрывает любой интервал. Потому что это обратный ход в гипотезе Коллатца.
Для покрытия интервала от [1 ... 100] требуется 500 итераций.
Для покрытия интервала от [1 ... 1000] требуется 25000 итераций.
Для покрытия интервала от [1 ... 10000] требуется 1 млн. итераций.
Итак, два вопроса:
1. Какое правило применять при
для получения следующего
?
или какое-то другое?
. Мы всегда применяем
к любому числу.
2. Как по Вашим правилам доказывается
при доказанном интервале
?
Постановка вопроса некорректна. Гипотеза Коллатца - это алгоритм. Мы его изучили, и пришли к выводу, что это простейшая рекурсия.
Рекурсия начинается с единицы. Мы можем её воспроизвести точь-в-точь, либо присмотреться к ней поближе, и выкинуть из нее чётные числа.
Осознав, что чётные числа нам не нужны (они фальшивые, ни на что не влияют), мы выкинули их из рекурсии. Мы сделали это для того, чтобы упростить доказательство.
2. В какой момент
считается доказанным?
Число
является доказанным, если оно рекурсивно получено из другого числа по правилам:
Эти правила - шаг рекурсии. Потому что они применяются рекурсией всегда, на любом шаге.
Напишите, по шагам, каждую итерацию, какое правило применяется?
Итерация №1.
Число 1.
, применяем
Число 1.
Итерация №2.
Число 5.
, применяем
Число 5.
Итерация №3.
Число 3.
, хвост рекурсии.
Число 3.
Итерация №4.
Число 13.
, применяем
Число 13.
Итерация №5.
Число 17.
, применяем
Число 17.
Итерация №6.
Число 11.
, применяем
Число 11.
Итерация №7.
Число 7.
, применяем
Число 7.
и т.д.
Сколько продолжать? Как именно продолжать на развилках? Слушать механического турка из ящика, который будет подсказывать?
Спасибо вам за теплые слова. :)
Продолжать рекурсивно. Это бесконечный процесс. Это рекурсия. Её нельзя остановить.
Коллатц предложил нам спуститься вниз по уже сформированной рекурсии. Но это слишком просто! Рекурсия проделала за нас всю работу. Мы лишь идем по её следам.
Но если мы шагаем вверх (из единицы), то для нас нет остановки, только вперед, безжалостная бесконечность.
Сейчас ваше "доказательство" работает так: мы задаем конкретное
, зовем вас, и вы придумываете что-то для этого конкретного
.
Нет, это не так. Оно работает, независимо от того, что вы о нём думаете, или я.
Но вы правы. Если автор не смог внятно донести свою мысль, это проблема автора.