Запускаю его на Питон: 2296044483657086 7014269785348883 2142814783086916 3767224421976616
Что не так с Питоном? Python 3.11.4 (2023), PyCharm (2023). Решил проверить задачу 5n+1. Там сказано, что число 7 при старте сразу уходит в бесконечность.
Термин "рекурсия" тут математики вообще не применяют, потому что тут нет объекта, который сам через себя задан.
Процесс разветвления чисел – задан сам через себя. Это и есть рекурсия. Этому посвящена моя публикация, которую мы и обсуждаем.
Есть последовательность Коллатца, которая задана функцией f.
Гипотеза Коллатца – это алгоритм. Это не функция.
То, что этот алгоритм общепринято записывать в виде функции f, это ничего не значит.
Даже, наоборот. Такая запись как раз демонстрирует, что в зависимости от разных условий (четности, нечетности чисел), выполняются разные действия алгоритма.
В этом случае, у вас терминалами будут, внезапно, все целые числа! Потому что в алгоритм рекурсивного спуска передается строка. …Далее, если у вас вот такое бесконечное количество терминалов (все целые числа), то вам нужно бесконечное количество правил. Что уже делает алгоритм рекурсивного спуска неприменимым на таких последовательностях. …Вы тут можете попробовать выкрутиться и сказать, что терминалы — цифры и, допустим, знак пробела между числами в последовательности, но тут получится проблема — проводить арифметические операции над числами в контекстно-свободной грамматике никак невозможно.
>>Вообще, процесс из гипотезы коллатца классифицируется так: Итерация.
Любую рекурсию можно превратить в итерацию. Но это не означает, что рекурсий не существует. Это первое.
Второе. В метод рекурсивного спуска мы передаем всю последовательность Коллатца целиком. Я ведь уже об этом говорил:
В таком виде 3n+1 – это классический метод рекурсивного спуска. Но с разницей лишь в том, что в метод мы передаем всю последовательность Коллатца целиком. А в задаче 3n+1 мы её только формируем.
Гильберт в 1928 г. сформулировал проблему алгоритмической неразрешимости той или иной математической задачи. В 1930 г. Гёдель доказал теорему о неполноте (ограниченности) формальных систем, таких как арифметика с её натуральными числами.
Тьюринг прочитал весь "этот бред" и с нуля создал Теорию алгоритмов. Другого выхода у него не было. Но и тут засада! Оказалось, что в математике нет рекурсий. На помощь пришел Клини в 1940-е.
Хомский же стандартизировал понятие синтаксиса и грамматик в 1950-е. И пошло, поехало. Стандарт за стандартом. Начиная от языков программирования, и заканчивая методом рекурсивного спуска.
Но тут выясняется, что математики не могут описать задачу 3n+1. Они говорят, это какой-то там "алгоритм" … Эй, брат, постой! Какой?
На сегодняшний день, нет ни одного математика в мире, который бы набрался смелости и признал 3n+1 – рекурсией. Я уже год бьюсь на всех форумах РФ, и задаю один и тот же вопрос: – Почему рекурсия из 10 строк кода генерирует все последовательности Коллатца? – Почему метод (процедура) рекурсивного спуска (снова 10 строк кода) спускается к единице?
Если гипотезу Коллатца нельзя описать через те сущности, которые уже есть в математике, предложите свои.
flange, у нас есть простейшая рекурсия. Это рекурсивный спуск по последовательности Коллатца:
int collatz(int n)
{
if (n == 1)
return 1;
if (n % 2 == 0)
{
n = n/2;
return collatz(n);
}
else
{
n = 3*n + 1;
return collatz(n);
}
}
Пожалуйста, классифицируйте эту рекурсию. Если, по вашему мнению, её нельзя классифицировать, то получается, что этот вид рекурсий в математике отсутствует.
К сожалению, функция g() не имеет отношения к гипотезе Коллатца.
В немецкой Википедии её приводят в дань уважения к самому Коллатцу, т.к. он с ней игрался в 1932 году, и пытался понять, чем она так кардинально отличается от 3n+1.
Но вы правы! То, что Коллатц пытался развернуть процесс с единицы – поражает.
Контекстно-свободная грамматика – частный случай формальной грамматики, у которой левые части всех продукций являются одиночными нетерминалами (формулами). Исследователь имеет право применить результат формулы снова к этой формуле и получить рекурсию.
Различают порождающие и распознающие грамматики – первые задают правила, с помощью которых можно построить любое слово языка (сиракузскую последовательность), вторые позволяют определить, входит ли это слово в язык или нет (спускается ли сиракузская последовательность к 1, или нет).
В этом плане порождающая грамматика описывает всю нашу рекурсию с помощью рекурсивных формул, а распознающая (аналитическая) задает простейший метод рекурсивного спуска для спуска к единице (3n+1, n/2).
Для описания формул достаточно использовать следующую грамматику:
Deutsche: Collatz die folgende Permutation der positiven ganzen Zahlen betrachtet: Diese Permutation besitzt den Fixpunkt 1 und außerdem zumindest die Zyklen (2, 3), (4, 5, 7, 9, 6). In dem zitierten Notizbucheintrag stellt Collatz die auch heute noch offene Frage, ob die mit 8 beginnende g-Trajektorie zyklisch wird oder gegen unendlich divergiert.
Перевод: Коллатц также рассматривал функцию g(). Она начинается с 1, но имеет циклы (2, 3, 4, 5, 6, 7, 9). Коллатц пытался понять, что будет, если запустить функцию g() с числа 8? Будет ли снова цикл или нет?
Я теперь вижу вашу позицию. И могу только лишь поблагодарить вас за ваш труд. Я удалил 60% текста из второй публикации. Мне нет прощения :). Вам респект и уважение.
Но мне нужна вторая публикация (в том виде, в котором она сейчас есть), чтобы показать, что у чисел не может быть два родителя. Я это использую в третьей работе.
Если во второй работе опять ошибки - пишите, всё исправлю. Но там сейчас в принципе ничего не осталось. Только "тривиальность" суждений.
Мы обсуждаем циклы. Но циклы - это вторая публикация. Да, признаю. Виноват. Но что вы хотите от меня? Чтобы я убрал вторую публикацию? Или принес вам письменные извинения?
Да, без проблем. Я приношу вам извинения. Простите. Да, с циклами вопрос открыт. Я поторопился. Извините.
Но говорить мне, что "вот он там неправ в циклах, а значит, он везде неправ" - это странно. Скажите мне, какой подход вы отстаиваете? И что вы хотите от меня?
Я безразлично отношусь к критикам. Но раз вы называете мои работы "позором", значит, вы отстаиваете какую-то свою идею. Объяснитесь.
Да, вы правы. Если провернуть с 5n+1 то же самое, что с 3n+1, то явных циклов мы тоже не увидим.
Это мой промах, что я взял пример из 5n+1 оригинальной схемы и сопоставил его с реверсной схемой. Так делать нельзя. Признаю. Виноват. Надо было сопоставлять реверсную с реверсной. Только так можно.
Но это не влияет на мою работу. От слова совсем. Потому что моя работа посвящена рекурсиям, мат. модели, механизму разветвления. А вывод второй работы – он мне тоже нужен.
Но я подумаю, как нам с вами выйти из этой ситуации. Может быть, я внесу уточнения во вторую часть, или опубликую новую работу.
Но ответ на Ваш вопрос, почему в 5n+1 есть циклы, следующий: Потому что механизм разветвления 5n+1 устроен таким образом, что он по умолчанию включает в себя циклы. Мат. модель для рекурсии 5n+1 дает цикл сразу же, как только мы запускаем первое же возможное разветвление:
, откуда n=13. 13 -> 33 -> 83 -> 13.
Вас устроит такой ответ? Или опубликовать новую работу по циклам в 5n+1? Чтобы вы понимали ход моих мыслей.
Kirill_Panteleev, у меня ограничение 1 комментарий в час. Я скинул вам в личку мой сотовый. Позвоните, как будет время. Я расскажу вам мои дальнейшие действия по Коллатцу.
wataru, вы себя ведете недостойно. Я вам уже сделал несколько замечаний. Примите это во внимание.
Спасибо! Теперь всё работает.
Помогите, пожалуйста.
Есть следующий код:
Запускаю его на 1С.
Указываю количество итераций: 500, 1000, 1500, 10000.
Получаю результат:
2296044483657086
7014269785336732191339839511433
214281478306217493968467132507143409334475117166
3767224397324212625018959046670386296144783512683083100759912969
Запускаю его на Питон:
2296044483657086
7014269785348883
2142814783086916
3767224421976616
Что не так с Питоном? Python 3.11.4 (2023), PyCharm (2023).
Решил проверить задачу 5n+1. Там сказано, что число 7 при старте сразу уходит в бесконечность.
Я подумал об общепринятом термине: Оружие массового поражения (ОМП).
wataru:
Процесс разветвления чисел – задан сам через себя. Это и есть рекурсия. Этому посвящена моя публикация, которую мы и обсуждаем.
Гипотеза Коллатца – это алгоритм. Это не функция.
То, что этот алгоритм общепринято записывать в виде функции f, это ничего не значит.
Даже, наоборот. Такая запись как раз демонстрирует, что в зависимости от разных условий (четности, нечетности чисел), выполняются разные действия алгоритма.
Читаем про метод рекурсивного спуска.
Далее читаем про токен «целое число».
Далее, выделяем 2 вида токена: чётные и нечетные числа.
Далее читаем про грамматику: любая контекстно-свободная грамматика может быть распознана с помощью автомата со стековой памятью.
Далее читаем про автомат со стеком: любое его состояние сильно зависит от предыдущего.
А теперь вопрос, имеем ли мы право запоминать предыдущий токен для анализа следующего?
Можем ли мы передать в метод рекурсивного спуска строку:
13, 40, 20, 10, 5, 16, 8, 4, 2, 1.
И получить на выходе:
Да, да, да, да, да, да, да, да, 1.
Это не так. Например, возьмите dxdy.ru, там прям вот сейчас идет обсуждение очередного доказательства "Великой теоремы Ферма".
Поиски продолжаются.
>>Вообще, процесс из гипотезы коллатца классифицируется так: Итерация.
Любую рекурсию можно превратить в итерацию.
Но это не означает, что рекурсий не существует. Это первое.
Второе. В метод рекурсивного спуска мы передаем всю последовательность Коллатца целиком. Я ведь уже об этом говорил:
Давайте поразмыслим.
Гильберт в 1928 г. сформулировал проблему алгоритмической неразрешимости той или иной математической задачи.
В 1930 г. Гёдель доказал теорему о неполноте (ограниченности) формальных систем, таких как арифметика с её натуральными числами.
Тьюринг прочитал весь "этот бред" и с нуля создал Теорию алгоритмов. Другого выхода у него не было.
Но и тут засада! Оказалось, что в математике нет рекурсий. На помощь пришел Клини в 1940-е.
Хомский же стандартизировал понятие синтаксиса и грамматик в 1950-е.
И пошло, поехало. Стандарт за стандартом. Начиная от языков программирования, и заканчивая методом рекурсивного спуска.
Но тут выясняется, что математики не могут описать задачу 3n+1.
Они говорят, это какой-то там "алгоритм" …
Эй, брат, постой! Какой?
На сегодняшний день, нет ни одного математика в мире, который бы набрался смелости и признал 3n+1 – рекурсией.
Я уже год бьюсь на всех форумах РФ, и задаю один и тот же вопрос:
– Почему рекурсия из 10 строк кода генерирует все последовательности Коллатца?
– Почему метод (процедура) рекурсивного спуска (снова 10 строк кода) спускается к единице?
Если гипотезу Коллатца нельзя описать через те сущности, которые уже есть в математике, предложите свои.
flange, у нас есть простейшая рекурсия.
Это рекурсивный спуск по последовательности Коллатца:
Пожалуйста, классифицируйте эту рекурсию.
Если, по вашему мнению, её нельзя классифицировать, то получается, что этот вид рекурсий в математике отсутствует.
flange, не позорьтесь.
Ваш аргумент – это последний аргумент в споре, когда больше нечего сказать.
К сожалению, функция g() не имеет отношения к гипотезе Коллатца.
В немецкой Википедии её приводят в дань уважения к самому Коллатцу, т.к. он с ней игрался в 1932 году, и пытался понять, чем она так кардинально отличается от 3n+1.
Но вы правы! То, что Коллатц пытался развернуть процесс с единицы – поражает.
Контекстно-свободная грамматика – частный случай формальной грамматики, у которой левые части всех продукций являются одиночными нетерминалами (формулами). Исследователь имеет право применить результат формулы снова к этой формуле и получить рекурсию.
Различают порождающие и распознающие грамматики – первые задают правила, с помощью которых можно построить любое слово языка (сиракузскую последовательность), вторые позволяют определить, входит ли это слово в язык или нет (спускается ли сиракузская последовательность к 1, или нет).
В этом плане порождающая грамматика описывает всю нашу рекурсию с помощью рекурсивных формул, а распознающая (аналитическая) задает простейший метод рекурсивного спуска для спуска к единице (3n+1, n/2).
Для описания формул
достаточно использовать следующую грамматику:
Терминальный алфавит:
{'0','1','2','3','4','5','6','7','8','9','+','-','*','/','(',')'}
Нетерминальный алфавит:
{ ФОРМУЛА, ЗНАК, ЧИСЛО, ЦИФРА }
Правила:
ФОРМУЛА
ФОРМУЛА ЗНАК ФОРМУЛА.
ФОРМУЛА
ЧИСЛО.
ФОРМУЛА
( ФОРМУЛА ).
ЗНАК
+ | - | * | /.
ЧИСЛО
ЦИФРА.
ЧИСЛО
ЧИСЛО ЦИФРА.
ЦИФРА
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9.
Еще вопросы?
Нет, супер ОМП я не разрабатывал и отношению к Тоцкому полигону (операция "снежок") тоже не имею.
Deutsche:
Collatz die folgende Permutation der positiven ganzen Zahlen betrachtet:
Diese Permutation besitzt den Fixpunkt 1 und außerdem zumindest die Zyklen (2, 3), (4, 5, 7, 9, 6). In dem zitierten Notizbucheintrag stellt Collatz die auch heute noch offene Frage, ob die mit 8 beginnende g-Trajektorie zyklisch wird oder gegen unendlich divergiert.
Перевод:
Коллатц также рассматривал функцию g().
Она начинается с 1, но имеет циклы (2, 3, 4, 5, 6, 7, 9). Коллатц пытался понять, что будет, если запустить функцию g() с числа 8? Будет ли снова цикл или нет?
Можно подробнее, вы это имеете в виду?
Collatz-Vermutung?
Я теперь вижу вашу позицию. И могу только лишь поблагодарить вас за ваш труд. Я удалил 60% текста из второй публикации. Мне нет прощения :). Вам респект и уважение.
Но мне нужна вторая публикация (в том виде, в котором она сейчас есть), чтобы показать, что у чисел не может быть два родителя. Я это использую в третьей работе.
Если во второй работе опять ошибки - пишите, всё исправлю. Но там сейчас в принципе ничего не осталось. Только "тривиальность" суждений.
Мы обсуждаем циклы. Но циклы - это вторая публикация. Да, признаю. Виноват.
Но что вы хотите от меня? Чтобы я убрал вторую публикацию? Или принес вам письменные извинения?
Да, без проблем. Я приношу вам извинения. Простите.
Да, с циклами вопрос открыт. Я поторопился. Извините.
Но говорить мне, что "вот он там неправ в циклах, а значит, он везде неправ" - это странно.
Скажите мне, какой подход вы отстаиваете? И что вы хотите от меня?
Я безразлично отношусь к критикам. Но раз вы называете мои работы "позором", значит, вы отстаиваете какую-то свою идею. Объяснитесь.
Да, вы правы. Если провернуть с 5n+1 то же самое, что с 3n+1, то явных циклов мы тоже не увидим.
Это мой промах, что я взял пример из 5n+1 оригинальной схемы и сопоставил его с
реверсной схемой. Так делать нельзя. Признаю. Виноват. Надо было сопоставлять реверсную с реверсной. Только так можно.
Но это не влияет на мою работу. От слова совсем. Потому что моя работа посвящена рекурсиям, мат. модели, механизму разветвления. А вывод второй работы – он мне тоже нужен.
Но я подумаю, как нам с вами выйти из этой ситуации. Может быть, я внесу уточнения во вторую часть, или опубликую новую работу.
Но ответ на Ваш вопрос, почему в 5n+1 есть циклы, следующий:
Потому что механизм разветвления 5n+1 устроен таким образом, что он по умолчанию включает в себя циклы. Мат. модель для рекурсии 5n+1 дает цикл сразу же, как только мы запускаем первое же возможное разветвление:
13 -> 33 -> 83 -> 13.
Вас устроит такой ответ? Или опубликовать новую работу по циклам в 5n+1? Чтобы вы понимали ход моих мыслей.
Сейчас отвечу.
Kirill_Panteleev, у меня ограничение 1 комментарий в час. Я скинул вам в личку мой сотовый. Позвоните, как будет время. Я расскажу вам мои дальнейшие действия по Коллатцу.
wataru, вы себя ведете недостойно. Я вам уже сделал несколько замечаний. Примите это во внимание.