All streams
Search
Write a publication
Pull to refresh
14
0
Send message

Почему вы исключаете шаг 1->1, мне непонятно. Потому что этот элементарный пример цикла является ярким контрпримером к вашему утверждению?

Нет смысла обсуждать то, что дано нам по условию задачи. Мы можем прописать в рекурсии условие, чтобы она создавала бесконечные циклические ветви n=n для всех n, не только для единицы. Это на вас окажет эффект? Нет, конечно. Ничего в задаче не изменится.

Но ответьте, пожалуйста, на следующие вопросы:

...Откуда такие выводы? Давайте по порядку.
...Где вы увидели шаги "увеличивающиеся в любом направлении"?
...Где повторы? Объясните, пожалуйста, ваш ход мысли.
...Как вы собираетесь отмотать рекурсию? Как вы собираетесь получить бесконечность там, где её нельзя получить?

Ответил вам во второй части публикации.

гипотеза 3n+1 алгоритмически неразрешима.

Да, вы правы, Википедия ссылается на работы S. Kurtz и J. Simon, которые пришли к выводу, что в такой постановке вопроса задача 3n+1 не доказуема.

Но 3n+1 - это алгоритм обрубок. Его в принципе не нужно было исследовать. Нужно было сразу переходить к полной версии алгоритма.

Вы перешли на личности? :(

Еще раз, все ваши рассуждения применимы к изначальной "рекурсии".

Простите. Но нет. Еще раз нет. И снова нет.
Рекурсия \frac {n-1}{3} умеет разветвлять числа, а рекурсия 3n+1 - нет, потому что это неполноценный алгоритм (обрубок).
В рекурсии \frac {n-1}{3} мы прописали шаг на разветвление, а в рекурсии 3n+1 мы его убрали.
Это разные задачи. Именно поэтому, мыслив категориями 3n+1, вы ограничены в своих суждениях.

Но там ЕСТЬ цикл! 1->2->4->1->

Тогда,
я процитирую первую часть публикации:

...Единица не может иметь другого прародителя, кроме самого себя, потому что \frac {n-1}{3} и 3n+1 дают для единицы – единицу.
...Чётные числа являются ширмой в гипотезе Коллатца.
...Мы выкинули все чётные числа из рекурсии.
...Рекурсию нельзя остановить. Она бесконечна в любую сторону: 1 \rightarrow 1 \rightarrow 1 \rightarrow 1 \rightarrow 1 \rightarrow – это также движение.

Поэтому, 1 \rightarrow 1 \rightarrow 1 \rightarrow– не может быть циклом в рамках того, что мы с вами здесь обсуждаем: a->b->c->a->...

n = n, это вообще не цикл. Это старт рекурсии. Прародитель сам себя создал и продолжает создавать бесконечно много раз.

Не надо мучить единицу. Пожалуйста, оставьте её в покое.
Давайте условимся, что первую "прародительскую" итерацию мы не будем называть циклом. И вообще не будем её рассматривать. Иначе, как это уже было, прибежит секта свидетелей нуль-функции и всем нам кирдык (шутка). :)

\frac {n-1}{3} — увеличивает в обратном направлении. 4x+1 — увеличивает в прямом.

wataru, вот здесь мы с вами уже друг друга не понимаем. Не только мы, но и читатели, наверное, тоже.

Далее, вы пишите:

Теоретически отматывая рекурсию назад можно тоже уйти в бесконечность, если начать с какого-то очень большого числа (недостижимого с 1).

Но как? Как вы собираетесь отмотать рекурсию? Как вы собираетесь получить бесконечность там, где её нельзя получить?

Шаг рекурсии \frac {n-1}{3} настолько простейший, что всё доказательство гипотезы Коллатца сводится только лишь к нему. Не нужно больше ничего делать. Надо только его осмыслить.

Алгоритм 3n+1 - может двигаться только по тем числам, которые уже были проложены до него рекурсией \frac {n-1}{3}, других вариантов нет.

Доброжелательно.

Спасибо! Вы третий человек, который проверил этот код. Сначала был «Soul Friend», потом я, теперь вы. Так, глядишь, четвертого найдем :)

Вот тут ошибка. Вы доказали, что нет цикла, в которой что-то входит снизу. Но из него может что-то выходить вверх.

Откуда такие выводы? Давайте по порядку.
Статья посвящена полной версии алгоритма \frac {n-1}{3}, где шаг рекурсии:

\frac{2n-1}{3} для случая n ≡ 2 mod(3),

\frac{4n-1}{3} для случая n ≡ 1 mod(3),

n=n для случая n ≡ 0 mod(3),
и постоянное применение к уже полученным числам 4x+1.

Таким образом, числа n ≡ 1 mod(3), n ≡ 2 mod(3) всегда порождают двух потомков. Числа вида n ≡ 0 mod(3) всегда порождают только одного потомка.

Родитель один. Потомков много.

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

С точки зрения рекурсии не существует никаких верхов, низов, последовательностей, и прочей такой вот терминологии. Рекурсия – это шаг рекурсии. Всё, что мы можем, это взять число, которое уже когда-то было получено рекурсией, подставить его в рекурсию, получить новое число, снова его подставить в рекурсию и т.д.

Мы доказали, что этот процесс не подразумевает повторов. Где повторы? Объясните, пожалуйста, ваш ход мысли.

Тут тоже косяк. Почему не может рекурсия из бесконечности уменьшаться, пока не достигнет x, а потом увеличиваться по другим числам в бесконечность? Шаги-то есть увеличивающие в любом направлении.

Извините, но где вы увидели шаги "увеличивающиеся в любом направлении"? Для рекурсии \frac {n-1}{3} есть только один увеличивающий шаг, это 4x+1. Никакое другое действие не увеличивает рекурсию. Я говорю именно про действие. Не про какие-то конкретные числа, которые, допустим, вы подставляете в рекурсию, и вам кажется, что вот, смотрите, число увеличилось. Нет. Я говорю именно про движение в сторону бесконечности. Оно единственное. Это 4x+1. Нет других движений.

Какое особое свойство у вашего "шага рекурсии" такое поведение запрещает вы не указали.

Указал. Это как раз центральный момент исследования.

Я процитирую:

Как сейчас уже очевидно, возрастание с единицы до бесконечности по алгоритму \frac {n-1}{3}, основано только лишь на одном правиле 4x+1. Применение же формул \frac{2n-1}{3}, \frac{4n-1}{3} – это просто ветка "вправо-влево", которая ни на что не влияет, потому что каждая такая ветка всегда заканчивается хвостом рекурсии n ≡ 0 mod(3).

Акцентирую. Любое действие в рекурсии \frac {n-1}{3} всегда заканчивается хвостом рекурсии n ≡ 0 mod(3). И с этим ничего нельзя сделать. На то он и хвост. Уравнение: 2^kz - \frac {1}{3} не имеет целочисленного решения.

Таким образом, у рекурсии \frac {n-1}{3} нет другого выбора, как расти в бесконечность по правилу 4x+1, потому что вся рекурсия фактически сводится (упрощается) только лишь к применению этого правила.

У автора вообще всё плохо с изложением материала. Он не умеет изъясняться.

Но справедливости ради, замечу, что «murkin-kot» говорит о рекуррентном соотношении в математике. Это рекурсия в теории алгоритмов.

В общем-то, центральная мысль, которую я отстаиваю больше года:

  • Любое применение 3n+1 к любому нечетному числу – это уже рекурсия. Если вы согласились так сделать, то вы вошли в рекурсию и уже не сможете из неё выйти.

Вот и весь фокус Коллатца.

То, что это дерево покрывает все натуральные числа — нигде не доказано.

Доказательство.

Предположим, такое число n есть, которое не покрывается рекурсией.
Но, как мы уже доказали, циклов, повторов и зацикливания в рекурсии нет.
Из этого следует, что подставив такое число n в рекурсию \frac {n-1}{3} мы получим противоречие. Потому что, прародитель (итерация назад) и рекурсия (итерация вперед) оба должны уйти в бесконечность. Это невозможно.

Если прародитель не идет к единице, и не зацикливается, то у него остается только один вариант – уйти в бесконечность. Но это невозможно. Это противоречит самой сути алгоритма. Нельзя получить две бесконечности из одного и того же алгоритма с тем шагом рекурсии, который мы установили (см. комментарий ниже).

Но ведь может быть изолированный цикл, в который ничто извне не ведет.

Не может быть изолированного цикла. Потому что мы имеем дело с рекурсией. В ваших рассуждениях вы апеллируете термином "отдельная последовательность". Но как вы себе представляете рекурсию? Её вообще-то нельзя остановить. Она бесконечна.

Она бесконечна в любую сторону. 1 \rightarrow 1 \rightarrow 1 \rightarrow 1 \rightarrow 1 \rightarrow ... – это также движение по рекурсии.

Акцентирую. Для рекурсии нет такого понятия как отдельно взятая "последовательность" a->b->c->a.

Для рекурсии любое число имеет прародителя и потомков. Рекурсия с чего-то там начинается и куда-то продолжается. Перед а нужно ставить x:

…->x->a->b->c->a->…

Но как мы уже доказали, рекурсия не может так зациклиться. Тогда остается только один вариант: рекурсия уходит в бесконечность и слева, и справа. Но это невозможно, это противоречит нашему алгоритму:

Для \frac {n-1}{3} движение к бесконечности – это просто формула 4x+1.

Для 3n+1 приземление – это просто формула \frac {n}{4}.

При таком шаге рекурсии, при таком движении, алгоритм \frac {n-1}{3} не может уйти в бесконечность и слева, и справа.

Алгоритм 3n+1 – это вообще обрубок, которому суждено только приземляться. Он просто следует по дереву, которое для него уже построили.

Почему нет чисел a->b->c->a

Потому что мы имеем дело с рекурсией. В ваших рассуждениях вы апеллируете термином "последовательности". Но как вы себе представляете рекурсию? Её вообще-то нельзя остановить. Она бесконечна :)

Она бесконечна в любую сторону: 1 \rightarrow 1 \rightarrow 1 \rightarrow 1 \rightarrow 1 \rightarrow ... – это также движение по рекурсии.

Акцентирую. Для рекурсии нет такого понятия как отдельно взятая "последовательность" a->b->c->a.

Для рекурсии любое число имеет прародителя и потомков. Рекурсия с чего-то там начинается и куда-то продолжается. Перед а нужно ставить x:

…->x->a->b->c->a->…

Но как мы уже доказали, рекурсия не может так зациклиться. Тогда остается только один вариант: рекурсия уходит в бесконечность и слева, и справа. Но это невозможно, это противоречит нашему алгоритму:

Для \frac {n-1}{3} движение к бесконечности – это просто формула 4x+1.

Для 3n+1 приземление – это просто формула \frac {n}{4}.

При таком шаге рекурсии, при таком движении, алгоритм \frac {n-1}{3} не может уйти в бесконечность и слева, и справа.

Алгоритм 3n+1 – это вообще обрубок, которому суждено только приземляться. Он просто следует по дереву, которое для него уже построили.

Но основной вопрос остался тем же, а вдруг какое-то число из 1 не получается?

Я на него для себя ответил так.

  • Первое, предположим, такое число n есть.

  • Второе, мы отталкиваемся от того, что повторов, циклов и зацикливания в рекурсии нет.

  • Третье, подставив такое число n в рекурсию \frac {n-1}{3} мы получим противоречие. Потому что, прародитель (итерация назад) и рекурсия (итерация вперед) оба должны уйти в бесконечность. Смотрите, если прародитель не идет к единице, и не зацикливается, то у него остается только один вариант - уйти в бесконечность. Но это невозможно. Это противоречит самой сути алгоритма. Нельзя получить две бесконечности из одного и того же алгоритма (с тем шагом рекурсии, который мы установили).

Согласен.
«Soul Friend» сам балбес. Надо было доводить дело до конца, еще 5 лет назад. Кто знает, сколько бы бессонных ночей он бы спас :)

wataru, кстати, во второй части публикации, я выложил исходный код программы (для запуска рекурсии из единицы). Если что-то вам надо, может быть, чем-то помочь, какие-то вопросы, пишите.

Смотрите, я не претендую ни на какие доказательства. Если у вас есть идеи – публикуйте, можете здесь в комментариях.

Но, вот, что хочу сказать, рекурсия \frac {n-1}{3} – это основная сущность. Гипотеза Коллатца - это урезанный алгоритм, и на него не стоит ровняться. 3n+1 – это производная форма от \frac {n-1}{3}.

Общение в интернете мне дается с трудом. Это правда. Что-то надо с этим делать. При личном общении, на той же кафедре математики с докторами математических наук я веду себя по-другому. Спасибо вам за критику. Я ценю это. Поверьте.

Вот сюда я выложил код программы. Код рабочий. Отпишитесь, пожалуйста, в личку, если есть какие-то вопросы.

sci_nov, спасибо вам за добрые слова. Доброе слово и кошке приятно!

Мой эмоциональный настрой (и в некоторых случаях агрессивность) - это следствие общения с математиками. Извините, если что не так. :)

Когда я делал перевод этой статьи на английский язык, то я использовал устоявшийся термин:

The iteration of the recursion.

Может быть, это как-то поможет нам с вам в терминологии.

Information

Rating
Does not participate
Registered
Activity

Specialization

1C Developer, ERP Developer
Linux
SQL
English