8

Задача о Геркулесе и Гидре

Привет, Пикабу, мой предыдущий пост не утонул в минусах, а @allozovsky напомнил мне о моем обещании, поэтому продолжу.

Среди математиков в одно время возникла задача о Геркулесе и Гидре. Кто ее предложил, я не знаю, я с ней познакомился в ЖЖ у автора avva, который, между прочим, был в свое время одним из ведущих программистов ЖЖ, а сейчас работает в Гугле.

Задача такая: Геракл находит Гидру, которая состоит из щупалец, из которых растут еще щупальца, из которых растут еще щупальца..., но эта иерархия конечна, и начинает ее рубить беспорядочно. При этом, после отрубания щупальца сразу вырастает два щупальца, но уровнем ниже. Вопрос: сможет ли Геркулес с такой тактикой дорубить Гидру до полного отсутствия щупалец, или нет? Учитываем еще то, что Геркулес смертный, и у него есть только конечное время, чтобы с эту гадину убить.

Вообще, чисто интуитивно кажется, что да, а вот доказать это математически строго довольно сложно.

Даже так, чтобы решить эту задачу (и подобные задачи), пришлось придумать числа, бОльшие, чем бесконечность.

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

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

Первый ординал обозначается как w (на самом деле, немного по другому, более скругленно, но почему-то в Юникоде, похоже, нет символа для ординала)

Первый ординал - это, можно сказать, число, на один большее чем бесконечность. дальше идет число w+1, дальше w+2, вплоть до w+w, который, естественно, равен 2*w, и так далее, доходя до w в степени w, но на нем не заканчиваясь.

В чем отличие ординалов от действительных чисел, спросите вы (естественно, никто, не спросит, досюда мало кто дочитает, на самом деле) - а в том, что любая нисходящая последовательность за конечное количество членов последовательности дойдет до нуля, а в действительных числах нисходящая последовательность до нуля может не доходить. Поэтому, задача о Гидре не решается в понятиях действительных чисел.


Дальше идет копипаста решения задачи о Гидре, кто хочет, может ознакомиться:


Пусть T - некоторая гидра. Мы присваиваем ординал каждой вершине T следующим образом. Каждый лист (голова) Т получает значение 0. Если A - некоторая вершина T с детьми, которым мы уже присвоили значения a, b, c, ... u, то вершине A мы присваиваем значение

wa+wb+...+wu.

(техническое замечание для педантов: a...u перед этим выстраиваем в невозрастающем порядке).

По определению w0 = 1.

Ординалом всей гидры T назовём ординал, который мы присвоим при помощи такой процедуры корню дерева.

Лемма: после каждого хода Геркулеса ординал гидры уменьшается. То есть, если On - ординал гидры после n-го хода, то On+1 < On (неравенство точное!).

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

Далее, ясно, что можно игнорировать существующих до отсечения "дядей" отсекаемой головы - их вклад в "дедушку" до и после отсечения не меняется.

Пусть таким образом у нас будет "дедушка" A с единственным сыном, "папой" B, у которого есть какие-то сыновья C_1, C_2, ... C_k (необязательно головы), плюс сын-голова D, которую мы отсекаем. Обозначим ординал вершины при помощи функции F. Тогда до отсечения

F(B) = wF(C_1)+...+wF(C_k) + w0.

Обозначим wF(C_1)+...+wF(C_k) = FC. Тогда опять-таки до отсечения

F(B) = FC + w0 = FC + 1.

F(A) = wF(B) = wFC+1 = wFC * w.

После отсечения мы получаем вместо одного "папы" B — N копий B (где N на единицу больше номера хода), у каждой из которых будет ординал FC (т.к. голову D, дающую добавку 1 к ординалу "папы", мы отсекли). Поэтому после отсечения

F(A) = wFC * N.

Сразу видим, что в результате отсечения F(A) уменьшилось. Умножение на сколь угодно большое число N даёт заведомо меньший результат, чем умножение на омегу. Лемма доказана.

Теперь нам осталось только вспомнить, что не бывает бесконечных строго нисходящих последовательностей ординалов (напомню, что ординалы образуют хорошо упорядоченный класс). Следовательно, за конечное число шагов Геркулес приведёт гидру к состоянию, в котором у неё будет ординал 0, т.е. всего одна голова. Что и требовалось доказать.


Использованные материалы:

https://avva.livejournal.com/244874.html

https://avva.livejournal.com/245918.html


Upd: тут в комментариях некто @gorzo1 настойчиво попросил апдейтнуть мой пост двумя предложениями:


"Геракл находит Гидру, которая состоит из щупалец, из которых растут еще щупальца, из которых растут еще щупальца", но которые растут только на уровень вверх.

И способность Геракла рубить щупальца мы принимаем за аксиому


За эти два предложения я не несу никакой ответственности, если они вам нравятся, лайкайте именно его, если не нравятся, дизлайкайте тоже именно его.

Лига математиков

906 постов2.5K подписчика

0
Автор поста оценил этот комментарий

Учитываем еще то, что Геркулес смертный, и у него есть только конечное время, чтобы с эту гадину убить.

То есть, нас не интересует время жизни, собственно, Геракла, а лишь конечность  затраченного времени?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Да

1
Автор поста оценил этот комментарий

А ведь всего-то надо было отрубить ей хвост по самые головы.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Тут в том-то и прикол, что Геракл рубит беспорядочно

0
Автор поста оценил этот комментарий

Давайте добавим еще переход на личности и попытку проверки моих знаний :D Хотите аттестовать ? :D

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

да что тут аттестовывать, и так понятно, по комментариям, кто тут аллозовский, кто примазаться решил (я), а кто доебывается неправомерно.

показать ответы
0
Автор поста оценил этот комментарий

"Геракл находит Гидру, которая состоит из щупалец, из которых растут еще щупальца, из которых растут еще щупальца", но которые растут только на уровень вверх. 

И способность Геракла рубить щупальца мы принимаем за аксиому :0

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

А ты не знал, что математика занимается выводами из аксиом?

показать ответы
0
Автор поста оценил этот комментарий

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

А то, что вот вы описали крайне расплывчато - это розовый единорог в сферическом вакууме. Задача, которая в предоставленных вами условиях нерешаема :)


А дальше, прикрываясь софистикой(я переводил математические понятия на обывательский, потому опустил десяток граничных условий задачи), вы пытаетесь выехать на кривой козе демагогии  - "просто объяснить сложнее" :D


Признавать свои ошибки может не каждый, но в математике их признавать не то что признак хорошего тона - это аксиома. Ибо без признания ошибки, верного решения ты не найдешь :D


PS добавление двух предложений, сделало бы задачу идентичной той, о которой вы рассказываете :) А то, что предоставили вы - как раз таки нерешаемая задача  :D

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Ок, давай эти два предложения, я их добавлю в пост, конечно, если посчитаю их правильными.

показать ответы
0
Автор поста оценил этот комментарий

Ну, современная да. Потому они и не пишут "сказки про геракла и гидру", а пишут интегралами и общаются логарифмами :D

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Математики общаются теми терминами, которые позволяют проблему описать. Например, Великая Теорема Ферма определяется как "решить в натуральных числах равенство a^n=b^n+c^n при n большем двух", а Проблема Четырех Красок: "можно ли любую карту на плоскости разукрасить всего четырмя красками". А так, есть очень хорошая лекция Савватеева "Знаменитые нерешенные проблемы школьной математики":

Предпросмотр
YouTube1:30:34
показать ответы
0
Автор поста оценил этот комментарий

Проще  - у нас есть слои:
1 |

2 ||

3 |||||

4 |||||


1 - это корень, на этом слое он один.


Если срубить все щупальца на 4 слое(их 5), то мы получим  плюс 10(5*2) щупалец на третьем слое.

1 |
2 ||

3 ||||| ||||| |||||

Далее рубим на третьем(их 15 ), то получаем плюс 30(15*2) щупалец на втором слое.
1 |

2 ||||| ||||| ||||| ||||| ||||| ||||| || (тут их 32)

Рубим на втором, получаем плюс 64(32*2) на первом слое.
1 | * 64
И вуаля. По сути это просто линейная прогрессия - послойно, начиная с наибольшего, количество умножаем на два и переносим на слой ниже.



В реальном мире такое не получится. Потому отрубив одно, получая два - гидра просто станет массивом из щупалец, который будет отодвигать геракла всё дальше и дальше, по мере роста. Просто потому, что в условии задачи нет понятий размера щупалец, поэтому теряя один объем, гидра приобретает два объема. 

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Ну, можешь свое доказательство предоставить математическому сообществу, если не боишься, что тебя очередным ферматистом назовут %). А современная математика уже давно ушла от реального мира, даже Теория Струн дай Бог математику начала 20 века задействует.

показать ответы
0
Автор поста оценил этот комментарий

А если простым языком. Как он сможет это сделать, если отрубив одно, появляется два?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

ты пропустил словосочетание "уровнем ниже". скажем, у Гидры растет три щупальца, из одного из них три, из одного из которых два. Геракл рубит самое верхнее щупальце, получается, что у Гидры растет три щупальца, из одного из них пять, из двух из которых одно.

показать ответы
0
DELETED
Автор поста оценил этот комментарий
А что, если у гидры изначально были головы 0 уровня и при отсечении давали 2 головы на 1 уровень выше? Через сколько времени она бы сколлапсировала, если бы ее рубил не Геркулес, а какой-нибудь бессмертный бог, которому нечем заняться (т.е., не Зевс)?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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

показать ответы
0
Автор поста оценил этот комментарий

Ну, согласитесь, с точки зрения математического подхода к условиям задачи, если имеется привязка задачи к некоему объекту, обладающему некоторыми общеизвестными свойствами, то эти свойства либо должны учитываться в задаче(на уровне "объем и масса не имеет значения"), либо должны учитываться только указанные.

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

Задача такая: Геракл находит Гидру, которая состоит из щупалец, из которых растут еще щупальца, из которых растут еще щупальца..

Однако нет уточнения, что щупальца могут расти только на уровень выше. Т.е. ситуация, когда щупальце уровня 1 растёт на уровень 2 а потом растёт на уровень 1 - так же подпадает под условия задачи. В результате которой деление на уровни становится неопределенным и в результате будет рекурсия. Он будет рубить щупальца, которые будут расти на уровень ниже, но если щупальце растёт с 2 на 1 уровень, то для щупальца это будет на уровень ниже, а по факту для стороннего наблюдателя на уровень выше :D Тем самым приводя к бесконечному увеличению гидры.


"Не баг, а фича" ©

раскрыть ветку (1)
Автор поста оценил этот комментарий

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

Просто, обывателю объяснить, что такое дерево в понятиях графов, и то такое функционал, сложнее, чем представить это в образах Геракла и Гидры.

показать ответы
2
Автор поста оценил этот комментарий

А, то есть ты не только свои мысли не можешь внятно изложить, но и сами мысли у тебя путаются. А вот это что на первом скриншоте тогда? Разрешается рубить только листья.

И во-вторых, у задачи две подзадачи: в первой Геракл/Геркулес рубит, выбирая, что рубить, а во второй рубит беспорядочно, но только листья.


И это не занудство. Были бы у тебя в посте пара мелких неточностей, тогда ладно, но у тебя весь пост из них состоит.


А щупальца - это опечатка, а не ошибка.

Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (1)
Автор поста оценил этот комментарий

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

показать ответы
3
Автор поста оценил этот комментарий

Условие задачи описано очень непонятно, и к тому же неправильно. Не говорится, какие щупльца можно рубить (в оригинале - только листья), утверждается, что вырастает два новых щупльца (в ориганале количество новых щупалец равно номеру хода), говорится, что вырастают они на уровень "ниже" (в терминологии деревьев это называется "выше"), непонятно, выше от чего - от отрубленного узла дерева или от его родителя. Это только то, до чего смог докопать. Короче говоря, не прочитав условие в первой ссылке - ничего не понял.


В юникоде символ есть - ω. Это самая обыкновенная греческая буква омега, используемая и в куче других мест в математике и физике. Ее название даже упоминается в конце скопипасченной тобой части.


>"В чем отличие ординалов от действительных чисел <...> - а в том, что любая нисходящая последовательность за конечное количество членов последовательности дойдет до нуля, а в действительных числах нисходящая последовательность до нуля может не доходить"

Какое-то сомнительное отличие. То же самое верно и для обычных натуральных чисел, не обязательно для этого в ординалы выходить.


>"wa+wb+...+wu"

Тут степени должны быть, и дальше в тексте тоже встречаются потерянные нижние и верхние регистры. Если копипастишь, то хоть пройдись по тексту, посмотри, все ли правильно скопипастилось.


В общем, мое мнение такое: задачка интересная и годная, стоит внимания, а ее подача и оформление в посте - полнейшая халтура, читать невозможно.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Вот и зануды подтянулись, из тех, что сами ошибки совершают %)

"Не говорится, какие щупльца можно рубить (в оригинале - только листья)" - в оригинале говорится именно о том, что Геракл рубит именно беспорядочно, не различая, лист он рубит, или корень. А еще и грамматическая ошибка в слове "щупальца" %)

показать ответы