Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Флейм (http://www.flasher.ru/forum/forumdisplay.php?f=53)
-   -   Как вы относитесь к рекурсии ? (http://www.flasher.ru/forum/showthread.php?t=147713)

easy.proger 11.12.2010 23:50

Как вы относитесь к рекурсии ?
 
Привет !
Рекурсия плохо ! НО я частенько пренебрегаю всеобщим ( !? ) мнением и вставляю местами

из недостатков вижу:
- плохая читабельность кода
- сложно искать баги
НО, если кусок отлажен и четко работает - почему нет ? или все же лучше стараться раскрывать их ? вобще много ли в ваших проектах ( или проЭктах ) мест, где вы используете рекурсию и какие в связи с этим у вас были проблемы ? как заказчики относятся к рекурсии в коде ?

Psycho Tiger 12.12.2010 00:30

У стека вызовов есть ограничение на 255 вызовов. Если алгоритм можно сделать итеративным - лучше сделать им. Но если рекурсия неглубокая (ну там 10 раз) - почему нет?
А откуда Вы взяли что рекурсия это плохо?

ir73 12.12.2010 00:42

я хорошо отношусь.

Хомяк 12.12.2010 01:33

Странно как то... это все равно что спрашивать как вы относитесь к инструкции "if"? Ну или вообще к ветвлению программы?

Котяра 12.12.2010 01:40

Рекурсия - это основа функциональных языков (лямбды и всё такое).
Рекурсия - это гениально.
Вот пример красивой рекурсии:
Код AS3:

fac(0)-> 1;
 
fac(N)-> N * fac(N-1).

а тут я на AS3 пытался это сделать..
кстати почитайте весь топик полностью.
рекурсию очень часто использую при:
- обходе xml
- поиске пути
- расчёт оптимальных коэц.факторов (по сути поиск пути)

orcpochta 12.12.2010 02:28

Котяра, i++;

В некоторых областях без рекурсии никуда!

-De- 12.12.2010 02:59

К рекурсии отношусь как к рекурсии!

Котяра 12.12.2010 03:50

К рекурсии отношусь как к рекурсии!

easy.proger 12.12.2010 09:21

Цитата:

Сообщение от Хомяк (Сообщение 956590)
Странно как то... это все равно что спрашивать как вы относитесь к инструкции "if"? Ну или вообще к ветвлению программы?

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

Вот мне и стало интересно, а как флешеры относятся к оной )

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

toPsycho Tiger, выше ответил

terbooter 12.12.2010 09:27

Рекурсию применяю очень редко, отношусь негативно =) Но иногда (обход произвольного дерева) иначе никак

drnet_ua 12.12.2010 12:20

Код:

коктейль "рекурсия"

20% спирта
30% воды
50% коктейля "рекурсия"


terbooter 12.12.2010 12:40

drnet_ua, у вас сходящийся ряд, который проще обсчитать по мат формуле, чем тратить ЦПУ

drnet_ua 12.12.2010 13:08

terbooter у вас сильно серьезное отношение к моему посту, это шутка была
(как бы Ахилес никогда не догонит черепаху)

Рекурсия это есть очень мощьное средство, при не правильном или не умелом применении очень опасно.

Хомяк 12.12.2010 14:27

Цитата:

Сообщение от easy.proger (Сообщение 956622)
Вы не правы так как видимо просто не занимались в той отрасли в которой я занимаюсь ( движко-писание ( графические игровые етс... ) ...

Я прав потому, что рекурсия является таким же базовым приёмом-инструментом программирования как и многие другие. Её можно применять эффективно и неэффективно, как и другие инструменты.

Если вы рассматриваете её применение в определенном контексте, то из вашего сообщения, открывшего тему, этого, определенно, сказать нельзя.

easy.proger 12.12.2010 15:35

Цитата:

Сообщение от Хомяк (Сообщение 956653)
Я прав потому, что рекурсия является таким же базовым приёмом-инструментом программирования как и многие другие. Её можно применять эффективно и неэффективно, как и другие инструменты.

Если вы рассматриваете её применение в определенном контексте, то из вашего сообщения, открывшего тему, этого, определенно, сказать нельзя.

Окей - не нравиться вопрос, можете не обсуждать
http://savepic.ru/1984449.png

Psycho Tiger 12.12.2010 16:02

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

gloomyBrain 12.12.2010 16:14

У меня была ситуация, когда кроме рекурсии вообще ничего сделать было нельзя. Правда она получилась куда читабельнее, чем попытка итеративного аналога. А по скорости работы получилась чуть ли не быстрее =) Так что я за рекурсии там, где это необходимо.

-De- 12.12.2010 17:08

По-моему тоже нормальное применение рекурсии делает код читабельнее уж точно, а с ошибками как и раньше (их разве что меньше, т.к. кода меньше).
Всегда можно сделать без рекурсии, раскрытие рекурсии гуглите, кто не знает, как.
Макс. глубину вызовов можно во флексе поставить опцией max-recursion-depth, там больше 255 точно можно)


Часовой пояс GMT +4, время: 18:48.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.