Итерация от человека. Рекурсия — от Бога. (Л. Питер Дойч)
Давно хотел собрать в одном месте всякие штуки и шутки про рекурсию. Потому что есть в ней нечто магическое :)
Определение в Википедии скучное, поэтому объясню своими словами: рекурсия, это нечто, что в процессе своего жизненного цикла вызывает само себя – то есть такой же жизненный цикл.
Для знакомых с программированием объяснение совсем простое: это функция, внутри которой происходит вызов этой же функции.
На примере статьи в словаре:
рекурсия
см. рекурсия
Когда-то на хабре кто-то не подумав сказал, что любой программный алгоритм можно реализовать с помощью операторов цикла (например for) и операторов ветвления (например if). Но на деле оператор цикла в реализации любого алгоритма не обязателен, достаточно только оператора условия, т.к. рекурсия заменяет цикл:
-
function opa($i)
-
{ $i++;
-
if($i != 10)
-
{
-
echo $i; opa($i);
-
}
-
}
-
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»).
Пока что на этом всё.
Кстати, рекурсия на столько мистична, что пока я набирал этот текст, ноут дважды уходил в синий экран.
> Когда-то на хабре кто-то не подумав сказал, что любой программный алгоритм можно реализовать с помощью операторов цикла и условия. Если бы этот человек знал больше о рекурсивных функциях, он не спорол бы такую глупость, потому что цикл легко реализуется с помощью того, о чем мы здесь сейчас говорим.
Не ясно, что хотел сказать автор этого абзаца.
Nixie, эээ… переписал абзац
Классная статья))Рекурсия действительно интересная штука.
Кстати, понравился больше сего комикс, наверное потому, что я его, в отличие от шуток, раньше не видел.
Я частенько читаю ваш блог и иногда пападаются интереные новасти :) P.S ваш сайт у меня в закладках ;)
Прикольная фигня xD