Я предлагаю отрываться от физического и вербального мира не сразу, а путем последовательного обобщения одного из самых популярных объектов рекурсии - русскую народную сказку "Репка".
Я запишу текст сказки, чтобы через несколько шагов от сказки не осталось ничего, кроме абстрактных математических символов и вместе с тем мы могли заменить эти символы любой другой конечной рекурсией.
Нужно отдельно отметить, что моей целью не является переход к демонстрации написания кода по рекурсивным алгоритмам и наше "условно программирование" останется на уровне математических символов, а не программных кодов.
Ниже будет описан алгоритм знакомства с рекурсией в несколько этапов,
Первый, давайте вместе перечитаем "Репку", и попробуем придумать схему для этой сказки самостоятельно, замечая изменения, которые происходят при переходе от одного "действующего лица", начиная с репки до мышки. Пересказов русской народной сказки, записанной и опубликованной Афанасьевым в 1863 году огромное множество. Возьмем самый простой, адаптированный для малышей, вариант.
Посадил дед репку. Выросла репка большая-пребольшая.
Пошел дед репку рвать: тянет-потянет, вытянуть не может!
Позвал дед бабку:
бабка за дедку,
дедка за репку —
тянут-потянут, вытянуть не могут!
Позвала бабка внучку:
внучка за бабку,
бабка за дедку,
дедка за репку —
тянут-потянут, вытянуть не могут!
Позвала внучка Жучку:
Жучка за внучку,
внучка за бабку,
бабка за дедку,
дедка за репку —
тянут-потянут, вытянуть не могут!
Позвала Жучка кошку:
кошка за Жучку,
Жучка за внучку,
внучка за бабку,
бабка за дедку,
дедка за репку —
тянут-потянут, вытянуть не могут!
Позвала кошка мышку:
мышка за кошку,
кошка за Жучку,
Жучка за внучку,
внучка за бабку,
бабка за дедку,
дедка за репку —
тянут-потянут, — вытянули репку!
Попробуем превратить жизненную задачу в сказке в подобие математической задачи. Задача, которая стоит перед дедом - вытащить репку. Что будет решением этой задачи - вытащенная из земли репка. Кто ставит задачу деду - сама репка. Как дед пытается решить задачу? Через действие: тянет репку. Может ли дед сам решить эту задачу? Тогда дед зовет на помощь бабку. Что должна делать бабка, чтобы помочь деду решить задачу? Тянуть репку. И уже на этом этапе можно заметить математическую абстракцию. Не важно, как выглядят персонажи - ведь бабка не повторяет деда буквально, она повторяет действие, которое приведет к решению задачи. Какое это действие? "Тянуть репку".
Давайте попробуем на этом этапе описать взаимодейтсвие между репкой, бабкой и дедкой математически.
Репка находится в самом верху и назовем ее буквой "Р" для первичного узнавания. Репка стоит особняком, потому что она грубо говоря "никого не тянет". Поэтому повторяющиеся действия начнутся с Дедки, обозначим его буквой "Д" соответственно, а бабку - буквой "Д".
Запишем и озвучим словами, что происходит в каждом действии "тянуть репку".
Вверху пирамидки сама репка: Р
Дед тянет репку: Р+Д
Бабка тянет деда, а дед тянет репку: P+Д+Б
P
P+Д
Р+Д+Б
И уже на этом этапе мы видим, что действия всех складываются, а не существуют сами по себе.
Мы не может пропустить предыдущеие действия и просто написать в строке "плюс усилия бабки", потому что ее действие "тянуть репку" прямо зависит от последовательных усилий "деда, который тоже не само по себе, а тянет репку. Намек на то, что одиночные действия не имеют смысла заложен в последовательностях с конца: мы не говорим дедка за репку, бабка за дедку, что нарушило бы последовательность, мы говорим "бабка за дедку, дедка за репку".
Т е, условно мы записали "все, кто уже тянул репку плюс еще один персонаж, который тоже тянет репку".
Здесь есть смысл перейти к математической абстракции, чтобы увидеть аналогичный алгоритм и за матрешками тоже. Представим, что матрешек всего три: большая(БМ), средняя(СМ) и маленькая(ММ). И мы начинаем вкладывать матрешки друг в друга с конца.
Маленькую матрешку мы вкладываем в среднюю, а потом в среднюю большую, запишем условно:
БМ
БМ+СМ
БМ+СМ+ММ
Проводим параллели с репкой:
P
P+Д
Р+Д+Б
Бабка за дедку, дедка за репку, что означает то же самой, что маленькая матрешка - в среднюю, средняя - в большую.
Попробуем обобщить через математические символы и потом приведем пример, чтобы люди, даже не имеющие никакого отношения к математике поняли, что внутри этого математической записи рекурсии находится реальность, с которой мы сталкивается в жизни непрерывно и постоянно,
a
a+b
a+b+c
Представим, что вы держите в руках фото, на котором вы и изображены, и тут какой-то папарацци выскакивает из-за угла и фотографирует вас с вашим фото в руках. Получется, что на фото стоите вы со своим фото в руках. Да уж, тут как в родственных связях и запутаться недолго.
Но если вы можете полными предложениями можете последовательно рассказать другому человеку, что происходит, а потом присвоить каждому следуюущему событию математический символ.
Давайте просто сделаем математический пересказ этих слов.
Есть вы(a)
Есть ваша фотография (b),
которую вы держите в руках
a+b
Есть вы на новой фотографии(с)
уже с фотографией в руках
a+b+c
Хотя рекурсия существовала всегда, ее формальная история началась с этой фотографии в фотографии и называется эффект Дросте.
https://art-assorty.ru/134-beskonechnaya-rekursiya-effekt-droste.html Эффект Дросте, изображение в изображении, как и отражение в зеркале или любой водной глади - примеры бесконечной рекурсии. При этом, "Репка", "Теремок", "Колобок" и матрешка и Белый Рыцарь - примеры конечных рекурсий, когда заданы условия, на каком этапе действие прекратится, т е, наступит конец или не будет равняться нулю.
Вернемся к "Репке" в числовом выражении.
(можно из Ютьюба Джинжебред)
Вероятно нужен пример Ханойской пирамиды.
Есть примеры и условно-конечной рекурсии, причем как прямой, так и обратной.
Например, деревня БЁртон в Англии
Нет никакой гарантии, что жители не захотят сделать еще одну копию своей деревни и разместить ее внутри.
Например, когда в реальности начинают появляться фрагменты из книг - это тоже пример рекурсии
- еще какой-то фрагмент макета не станет реальностью
Давайте вернемся к началу 8-й главы "Алисы в Зазеркалье".
(цитата)
Алиса говорит, что не хочет быть чужим сном, поэтому
Философский вопрос, поставленный Лао Дзы, кто кому снится, это и есть самое настоящее совмещение прямой и обратной рекурсии.
Перейдем к линвистике
Ноам Хомский "Человек говорящий"
считает, что только рекурсия, выраженное в синтаксисе, отличает человеческую коммуникацию от коммуникации животных.
Язык порождает бесконечное количество высказываний из конечного количества элементов.
Очень хорошо это видно в названии родственных связей.
Например
есть мать
а у нее тоже есть мать, получается мать матери и далее до бесконечной рекурсии.
Все так же, как с фотографиями.
Это явление называется порождающей грамматикой и выражается той же схемой,
которую мы уже видели в сказках и произведениях искусства.
a
a+b
a+b+c и т д
Откуда берется вложенность?
Она берется из невозможности сказать о какой-нибудь матери, не подразумевая всех остальных
Пример 1320 год - храм и его копия, которая находится внутри
Варна и макер города в Морском саду
Ханойские пирамиды
Гнездо???
Сначала было воображение
При написании этой книги(лекции) использована конечная рекурсия. Задача стояла написать книгу из 10 глав и предисловия,
которая вызывала подзадачу написать следующую главу. Когда предыдующая глава была написана, то она подвисала в ожидании следующей главы и так все 10 глав, пока n не начал равняться нулю.
Использованная литература
Джон Тениел. Дважды Рыцарь Великой Британии
https://artchive.ru/publications/334~Dzhon_Tenniel_Dvazhdy_rytsar'_Velikoj_Britanii Ира Мир
Человеческая рекурсия
https://artchive.ru/iramir/works/586086~Chelovecheskaja_rekursija Сказки,Репка
https://skazki.rustih.ru/repka-2/ Бесконечная рекурсия. Эффект Дросте
https://art-assorty.ru/134-beskonechnaya-rekursiya-effekt-droste.html Виктор Вахштайн Городские рекурсии. Постнаука
https://postnauka.ru/video/93282 Рекурсия Занимательные задачки Хабр
https://habr.com/ru/post/275813/ Итак рекурсивная функция состоит из
- Условие остановки или же Базовый случай
- Условие продолжения или Шаг рекурсии — способ сведения задачи к более простым. (включить в текст еще и определения из группы и сослаться) Английская репка ставит задачу по-другому - базовый случай иили условие остановки будет съесть рупку
- рекурсия будет начнаься с репки
т е зададачу ставит желудок
Алиса в Зазеркалье, глава 8
https://www.kursivom.ru/%d0%b0%d0%bb%d0%b8%d1%81%d0%b0-%d0%b2-%d0%b7%d0%b0%d0%b7%d0%b5%d1%80%d0%ba%d0%b0%d0%bb%d1%8c%d0%b5-8-1-%d0%bf%d0%be%d1%8f%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d1%80%d1%8b%d1%86%d0%b0/ Английская репка ставит задачу по-другому
Р
Кстати, сам Тенниел присвоил себе этот титул гораздо раньше, когда вывел себя в образе белого рыцаря в книге Льюиса Кэролла. Кэролл настаивал, чтобы художник сбрил усы у рыцаря. Но они были похожи на усы самого Тенниела и художник их сохранил.
Кэрролл, как математик, наверняка был знаком с математической рекурсией
Давайте отвлечемся ненадолго от Кэррола
Как гнездо привело меня к Белому Рыцарю
--
Я на Facebook:
http://www.facebook.com/?id=100000915345268 There are two significant differences between natural lighting and artificial sources. One is the character of the fill and the other is a more rapid fall-off in intensity. In nature, skylight fill is omni-directional and usually brighter from above. That "wrap around" characteristic is difficult to duplicate with a directional artificial source.