Рекурсия

Материал из Lurkmore.

Перейти к: навигация, поиск
Анонимус!
Альтернативное мнение также имеется в смехуечках.


«To Iterate is Human, to Recurse, Divine»
— James O. Coplien, Bell Labs
Это, например, рекурсия. А может быть даже фрактал
Это, например, рекурсия. А может быть даже фрактал

Рекурсия — см. «Рекурсия».

Рекурсией в программировании называется вызов функцией самой себя прямо (в теле функции расположен вызов себя) или косвенно (функция вызывает функцию, которая вызывает функцию, которая… и в одной из этих функций расположен вызов самой первой функции). Типичным примером функций, использующих рекурсию, являются вычисление факториала и функция Аккермана. В более общем смысле, включение некоторой сущностью самой себя целиком (см. пример с зеркалами ниже).

Помимо своего матанского и программистского значения, рекурсия — мем, используемый в наших интернетах в основном среди читателей башорга. Более сложный вариант без гиперссылок: «Чтобы понять рекурсию, нужно сперва понять рекурсию».

Содержание

Наблюдение рекурсии

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

  • Если у вас есть веб-камера, то сделайте так чтобы изображение с неё выводилось на экран и направьте камеру прямо в монитор — это и будет она.
  • Тот же самый спецэффект можно получить и с меньшим бюджетом воспользовавшись программой записи видео с экрана (или программой-лупой).
  • Если и этого нет под рукой, то подобную рекурсию можете произвести вручную. Откройте любой графический редактор (например, тот же Paint) и с детским задором высунув язык без остановки поочерёдно жмакайте на клавиатуре Print Screen и Ctrl+V.

IRL же, визуальную рекурсию можно легко получить встав между двух стоящих друг напротив друга зеркал. Например, в коридоре вагона поезда.

Примеры

Бесконечный цикл. В рекурсию он превращается только при условии, что звонит чел на автоответчик.
Бесконечный цикл. В рекурсию он превращается только при условии, что звонит чел на автоответчик.
  • «Установите драйвера для CD-ROM, находищиеся на нашем компакт-диске».
  • «Для выхода в Интернет скачайте из Интернета нашу программу».
  • winrar_setup.rar
  • «Keyboard not found. Press anykey to continue».

Рекурсия в кино

  • В фильме «12 друзей Оушена» представлен интересный пример рекурсии: Джулия Робертс сыграла героиню, которая по сюжету фильма некоторое время играла Джулию Робертс.
  • В этом вашем Хаусе в конце втрого сезона Хаус видит галлюцинацию, в которой он в свою очередь тоже видит галлюцинацию. Кто смотрел, поймет.

Простейший пример рекурсии в диалоге

1: Я подумаю. Иди потролль кого-нибудь. 2: Я подумаю. Иди потролль кого-нибудь.

Из жизни братьев наших меньших

  • Хаскель состоит из рекурсии чуть менее, чем полностью.
  • Scheme же состоит из рекурсии чуть более, чем полностью.
  • Реакция на слово «рекурсия» типичного ПеХаПе-программиста.

Рекурсия в законодательстве

Из инструкции ФАПСИ от 13 июня 2001 года N 152:

  • Сертифицированные ФАПСИ средства криптографической защиты конфиденциальной информации в настоящей Инструкции именуются - СКЗИ. К СКЗИ относятся:

- реализующие криптографические алгоритмы преобразования информации, аппаратные, программные и аппаратно-программные средства, системы и комплексы, обеспечивающие безопасность информации при ее обработке, хранении и передаче по каналам связи включая СКЗИ;

http://www.parfenov.ru/base/min-ved/prochee/dir48/

В музыке

xkcd о рекурсии
xkcd о рекурсии

(link)

Рекурсивный клип
  • Известный хит Deep Purple «Smoke On The Water» повествует нам о сгоревшем здании, в котором должен был записываться альбом, на который вошла песня, повествующая…
  • Ирландский расовый Bog down in the valley.
  • Верный пример рекурсии из этого вашего Сплина:

И мудрец сошел с ума, набрал 01, И по вызову явился незнакомый господин И господин сошел с ума, набрал 01, И по вызову явился незнакомый господин И господин сошел с ума, набрал 01, И по вызову явился незнакомый господин, И господин сказал..." В последней строке мы наблюдаем выход из рекурсии.

  • Ещё такая детская песенка:

У попа была собака, Он её любил. Она съела кусок мяса, Он её убил. И в землю закопал, И надпись написал, что...

  • Незабвенная «Put The Lime In The Coconut»

В работе

Требуется расклейщик объявлений для расклейки объявлений о приеме на работу расклейщиков объявлений.

В армии

Бой — это единственное средство достижения победы в бою!

Бомба всегда падает в эпицентр.

На кухне

Салат «рекурсивный»: помидоры, огурцы, салат…

Изображение:Bashorgrufavicon.png100219

Рекурсивные акронимы

Бородатые линуксойды обожают рекурсивные акронимы.

  • GNU — GNU is not unix
  • WINE — WINE is not an emulator
  • PINE — PINE is not elm
  • LAME — LAME Ain’t a MP3 Encoder
  • PHP — PHP Hypertext Preprocessor
  • Gajim — Gajim is a jabber instant messenger
  • PNG — PNG is Not GIF

Внезапно:

  • VISA — Visa International Service Association

В программировании

  • Простейший пример рекурсивной функции вычисляющей факториал на Common Lisp’е:
(defun fact(x)
(if (integerp x)
(if (= x 0)
1
(* x (fact (1- x))))))

Алсо

Хорошая, годная рекурсия.
Хорошая, годная рекурсия.
Из одного из рисовач-тредов Нульчана
Из одного из рисовач-тредов Нульчана
  • Рекурсия в качестве источника лулзов — не столь новое изобретение. Цитата из книги английского математика Дж. Литлвуда «Mathematician’s miscellany», выпущеной в 1957 году:

Однажды научный журнал Spectator объявил среди читателей конкурс на тему «Что бы вы с наибольшим удовольствием прочли, раскрыв утреннюю газету?».

Приз получил ответ:

Наш второй конкурс. Первый приз во втором конкурсе этого года присуждён мистеру Артуру Робинсону, остроумный ответ которого без натяжки должен быть признан наилучшим. Его ответ на вопрос «Что бы вы с наибольшим удовольствием прочли, раскрыв утреннюю газету?» был озаглавлен «Наш второй конкурс», и состоял в следующем: «Первый приз во втором конкурсе этого года присуждён мистеру Артуру Робинсону, остроумный ответ которого без натяжки должен быть признан наилучшим. Его ответ на вопрос „Что бы вы с наибольшим удовольствием прочли, раскрыв утреннюю газету?“ был озаглавлен „Наш второй конкурс“, но из-за лимитирования бумаги мы не можем напечатать его полностью.»

  • Известно, что в системах с ограниченным объёмом оперативной памяти (компьютер, мозг быдла…) неограниченная или недостаточно ограниченная рекурсия может привести к stack overflow с малопредсказуемыми, но всегда неприятными последствиями.
  • Логический парадокс «я лгу» косвенно относится к. Это так называемые автореферентные выражения.
  • Простейший пример косвенной рекурсии — про бабочку и китайского философа Чжуан Цзы. Философ спит, и ему снится что он бабочка, которая спит и ей снится что она философ, который спит и ему снится что он бабочка, которая спит и ей снится… Аналогичный пример присутствует у Кэрролла в "Алисе в Зазеркалье": Алиса спит и видит во сне Чёрного Короля, который спит и видит во сне Алису, которая спит и видит Короля…
  • Всем похуй, что всем похуй.

Ссылки

См. также

Источник — «http://lurkmore.ru/Рекурсия»
Личные инструменты
Инструменты
На других языках