Про рекурсию

Итерация от человека. Рекурсия — от Бога. (Л. Питер Дойч)

Давно хотел собрать в одном месте всякие штуки и шутки про рекурсию. Потому что есть в ней нечто магическое :)

Определение в Википедии скучное, поэтому объясню своими словами: рекурсия это нечто, что в процессе своего жизненного цикла вызывает само себя — то есть такой же жизненный цикл.
Для знакомых с программированием объяснение совсем простое: это функция, внутри которой происходит вызов этой же функции.

На примере статьи в словаре:

рекурсия
см. рекурсия

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

  1. function opa($i)
  2. { $i++;
  3.    if($i != 10)
  4.      {
  5.        echo $i; opa($i);
  6.      }
  7. }
  8. opa(1);

Рекурсия прекрасна, да :) Но самое замечательное в ней — это тонны юмора, которые нагенерировали в интернете благодаря её замечательности ;)

Это просто жесть. программисты, ёпта, живем втроем, договорились так: первый будит второго, второй третьего, третий первого… рекурсия=) в результате проспали лекцию.

У нас на обед — салат «Рекурсивный» : помидоры, огурцы, салат.

xxx: помнишь Антоха желание проиграл? так вот, я ему загадал: чтобы он 2 дня на все предметы, с которыми совершил какие-либо действия клеил стикер с этим действием…)))
yyy:
я бы точно клеил бы на стикер стикер с надписью наклеил
ушел бы в глубокую рекурсию

мелкого (сына 10 мес) вогнал в рекурсию…
одна соска во рту. дал вторую. первую от радости выплюнул. вставил вторую. услышал как чтото упало. обрадовался увидев первую соску. выронил вторую. засунул первую в рот. услышал как чтото упало… уже 5 минут меняет их

Сегодня работал с отцом, он мне говорит типа «хочешь рекурсию покажу?», я типа «ну давай». Он берет втыкает вилку дрели в удлинитель, а вилку удлинителя втыкает в свободную розетку этого же удлинителя, жмет кнопку, дрель начинает работать…
Блин наверное у меня было очень смешное лицо, он ржал до вечера, а я еще долго втыкал почему же так получается. Оказалось дрель была на аккумуляторе.

В философии эгоизм и альтруизм — это та же рекурсия. Как яйцо и курица: непонятно, что первично — доброе намерение или собственная выгода. И так до бесконечности — одно вызывает другое.

РекурсияИнтересным экземпляром среди родственников рекурсии является
Рекурсивная утка (лат. Fractal Duck, сокр. FracDuck, Fuck) — структура, обладающая биолого-математическим дуализмом: с одной стороны — это птица, с другой — вызывающая сама себя математическая функция. В момент самовызова предыдущий экземпляр утки аннигилирует (так называемый самовывоз РУ), а последующий появляется в случайной точке пространства-времени. Самовывоз может происходить как в случайный момент времени, так и по наступлению какого либо события.

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

А еще есть рекурсивные акронимы (аббревиатуры):

  • GNU (англ. «GNU’s Not UNIX» — «GNU — это не UNIX»);
  • LAME (англ. «LAME Ain’t an MP3 Encoder» — «LAME — это не кодер mp3»);
  • PHP (англ. «PHP: Hypertext Preprocessor» — «PHP: препроцессор гипертекста»);
  • WINE (англ. «WINE Is Not Emulator» — «WINE — это не эмулятор»);
  • YAML (англ. «YAML Ain’t Markup Language» — «YAML — не язык разметки»);
  • XNA (англ. «XNA’s Not Acronymed» — «XNA — не акроним»);
  • VISA (англ. «Visa International Service Association»).

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

Про рекурсию: 5 комментариев

  1. > Когда-то на хабре кто-то не подумав сказал, что любой программный алгоритм можно реализовать с помощью операторов цикла и условия. Если бы этот человек знал больше о рекурсивных функциях, он не спорол бы такую глупость, потому что цикл легко реализуется с помощью того, о чем мы здесь сейчас говорим.

    Не ясно, что хотел сказать автор этого абзаца.

  2. Классная статья))Рекурсия действительно интересная штука.
    Кстати, понравился больше сего комикс, наверное потому, что я его, в отличие от шуток, раньше не видел.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *