|
|
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
VowkКак справедливо тут говорилось, любой алгоритм можно записать как в рекурсивной, так и в итерационной форме. Рекурсивная форма получается меньше, но для понимания как бы сложнее. Это фейк? Вы ТРАНСФОРМИРОВАЛИ рекурсивный алгоритм перестановок или взяли ДРУГОЙ ИТЕРАЦИОННЫЙ алгоритм. Я знаю такой существует. И он действительно проще для понимания чем метод с рекурсией. (Я код не смотрел.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2010, 12:03:43 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
maytonVowkКак справедливо тут говорилось, любой алгоритм можно записать как в рекурсивной, так и в итерационной форме. Рекурсивная форма получается меньше, но для понимания как бы сложнее. Это фейк? Вы ТРАНСФОРМИРОВАЛИ рекурсивный алгоритм перестановок или взяли ДРУГОЙ ИТЕРАЦИОННЫЙ алгоритм. Я знаю такой существует. И он действительно проще для понимания чем метод с рекурсией. (Я код не смотрел.) Что сказать хотел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2010, 14:17:19 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
VowkЧто сказать хотел? Обычно так не бывает. Рекурсивный алгоритм который занимает N строк исходного кода обычно (как правило) после трансформации его в плоский (НЕРЕКУРСИВНЫЙ) с использованием доп. структур данных типа стек, очередь, дек, может занимать более чем N строк. И это не свойство рекурсий а свойство самих языков программирования. Callback выглядит компактнее. Если у тебя это не так, значит исходный алгоритм изначально НЕ БЫЛ рекурсивным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2010, 14:45:11 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
Нафлудили 3 страницы, а толку? Автор такие глупые вопросы задаёт. Ему отвечают, а он опять спрашивает. Не дозрел человек значит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2010, 15:34:37 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Как то писал 8 ферзей на GW Basic, ваще мрак на клиппере. без рекурсии будет черт-те что Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2010, 16:40:04 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
Модераторы, куда дели рекурсивный герб России ? Модератор: В корзину. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2010, 16:51:55 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
MasterZiv wrote: > Модераторы, куда дели рекурсивный герб России ? > > *Модератор:* В корзину. А с чего ? Такое классное объяснение рекурсии ... В чем проблема ? Posted via ActualForum NNTP Server 1.4 Модератор: Объяснение классное, выбор картинки - не очень. Просто постарайтесь объяснять без использования официальных символов государства. На всякий случай :) Спасибо за понимание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2010, 18:11:50 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
MasterZiv wrote: > *Модератор:* Объяснение классное, выбор картинки - не очень. Просто > постарайтесь объяснять без использования официальных символов > государства. На всякий случай :) > Спасибо за понимание. Не понимаю. Вот из правил: Публикация изображений. Максимальный размер изображения, публикуемого с помощью кода img, должен составлять не более 100 кб. Опубликованное изображение не должно носить оскорбляющий характер. Где написано, что нельзя использовать официальные символы государства ? В чём вообще проблема, я не понимаю ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2010, 13:39:46 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
АльмалексияАвтор такие глупые вопросы задаёт. Ему отвечают, а он опять спрашивает. Не дозрел человек значит. Так ведь поэтому и задаю. Если человеку объяснить и он сразу поймет -- это значит только, что у него очень быстрый процесс "созревания", поэтому глупых вопросов либо 1-2, либо нет вообще. По теме -- изначально сидело убеждение, что рекурсия применяется только к определенно структурированной информации. Особенно из-за примеров с картинками, стишком и зеркалами так думал. Теперь понял, что плясать нужно от задачи. Вчера как раз в тему про фракталы фильм смотрел. Тот же самый принцип: нахождение шаблона. В рекурсии -- одинаковых моментов в алгоритме задачи, в фракталах -- одинаковых моментов в изображении. Теперь только руку набить осталось в определении рекурсивных алгоритмов. Случаем задачников таких не существует для обучения? :) Типа как в судоку: легко, средне, сложно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2010, 14:41:22 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
Из инженерной графики: Снежинка Коха, Множество Мандельбротта, Кривая Гилберта, Кривая Серпинского, Лист Папоротника, Различные алгоритмы генерации лабиринтов (Maze), Фрактальное сжатие изображение. Из структур данных (уже устал повторять): поиск в деревьях и графах, алгоритмы коммивояжеров, раскраски, планаризация, кратчайшие пути (короче весь учебник по графам). Игровые задачи: Решение (solve) шахматных, шашечных и прочих настольных задач, ханойские башни, головоломки, кубики-рубики, пентамино, раскройка, укладка рюкзаков. Около-научные задачи: генетические проблемы, поиск лекарств "от всего". Разработка трансляторов : парсеры, BNF, Yacc, Bizon, XML/XPath. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2010, 15:11:22 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
GwaShSergeУ попа была собака, он её любил. Она съела кусок мяса. Он её убил. На могиле написал: "У попа была собака..." - это и есть рекурсия. Это как раз пример рекурсии без выхода, ведущей к переполнению стека.. Не всякая рекурсия без выхода ведет к переполнению стека ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2010, 15:49:44 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
в дополнение к предыдущему оратору, стек - только один из инструментов реализации рекурсии. Для реализации рекурсии порождающей итеративный процесс, в энергичных языках используют хвостовую рекурсию.ЕМНИП, в ленивых даже не нужно аккумулятор использовать, там сборщик мусора сам все проблемы решает. а если учесть что рекурсия понятие математическое(философское если хотите), то стек, память и время выполнения - имеет мало общего с этим понятием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2010, 18:20:33 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
ZyK_BotaNа если учесть что рекурсия понятие математическое(философское если хотите), то стек, память и время выполнения - имеет мало общего с этим понятием.до тех пор, пока алгоритм существует на бумаге - да, если же он воплощается в программный код, то, к сожалению, стек, память и прочая "мутота" вылезают на поверхность во всей своей неприглядности =))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2010, 20:07:39 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
рекурсия -- это рекурсия ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2010, 19:01:09 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
Все эти обычные слова навроде "рекурсия -- это вызов функцией самой себя" никакого понимания не дают, а пытливого человека могут лишь запутать. Ну как можно "вызвать" функцию, которая ещё не определена, то есть ещё неизвестно, что она из себя представляет и какой процесс вычислений задаёт? То есть, рекурсия требует более широкого представления об определении функций , ближе к математическому, нежели традиционно-примитивному как последовательности инструкций компьютеру вперемежку с вызовами ранее определённых функций как "макросов" для таких же по сути последовательностей инструкций, и по этой причине слово "вызов" использовать нехорошо -- "вызывать" нечего. Для именно "программистского" понимания рекурсии, как её себе представлять и в каких терминах о ней думать, можно порекомендовать весьма короткую и ориентированную именно на понимание лекцию о естественной связи рекурсивных функций в программах и комбинатором неподвижной точки . Непосредственно же реализация возможности рекурсивных вызовов (в компиляторах, виртуальных машинах и т.п.), так же как и всякие оптимизации хвостовых вызовов и т.п. -- вопросы скорее технического характера, самого понимания "рекурсии" мало касающиеся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2010, 13:15:32 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
junior idiot... Ну как можно "вызвать" функцию, которая ещё не определена, то есть ещё неизвестно, что она из себя представляет и какой процесс вычислений задаёт? ...Самым обычным способом. Функции в каком-то смысле и были придуманы для того, чтобы можно было ими пользоваться, "не зная, что они из себя представляет". Именно так и используется подавляющее большинство системных , библиотечных ф-й или функций созданных другими программистами. Именно на этом основано программирование "сверху вниз" - применение или вызовы функций пишутся до реализации этих функций. Причем это фактическое применение может дополнять (или иногда даже замещать) техническое задание и т.д., когда функции нижнего уровня пишутся другим программистом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2010, 15:41:29 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
avb1003 , Использование функций, детали реализации которых в данный момент не важны , и использование функций, детали реализации которых в данный момент как раз и описываются -- принципиально разные вещи, ничего общего не имеющие. Первое совершенно очевидным образом возможно без именования функций (то есть связывания некоторого процесса вычислений с определённым символом): достаточно просто оставлять пробелы, в которые потом вписывать детализирующий код. А вот что делать с рекурсией без возможности именовать функции? Здесь выход совершенно не так очевиден. А вопрос этот вполне естественный, ведь интуитивно ясно, что "функция", что бы ни подразумевалось под этим словом, никак не должна зависеть от каких-то там наименований и условных обозначений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2010, 15:51:01 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
junior idiot avb1003 , Использование функций, детали реализации которых в данный момент не важны , и использование функций, детали реализации которых в данный момент как раз и описываются -- принципиально разные вещи, ничего общего не имеющие. ...Это только на Ваш взглядjunior idiot... Первое совершенно очевидным образом возможно без именования функций (то есть связывания некоторого процесса вычислений с определённым символом): достаточно просто оставлять пробелы, в которые потом вписывать детализирующий код.Это вообще мимо. Именование функции, число и тип параметров должны быть уже известны. То есть вызов должен делаться после "объявления функции", как это называется в книжках по С++.junior idiot... А вот что делать с рекурсией без возможности именовать функции? Кажется, что Вы никогда не писали никаких функций, так как придумываете несуществующие проблемы. Кто лишил Вас возможности "именовать" функцию? junior idiot ... Здесь выход совершенно не так очевиден.Начните что-нибудь программировать и все станет гораздо очевиднее.junior idiot... А вопрос этот вполне естественный, ведь интуитивно ясно, что "функция", что бы ни подразумевалось под этим словом, никак не должна зависеть от каких-то там наименований и условных обозначений.Здесь вообще непонятно, что Вы хотели сказать. В данном контексте функция или же подпрограмма просто "поименованная или иным образом идентифицированная часть компьютерной программы, содержащая описание определённого набора действий...." См. Подпрограмма или Функция (программирование) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2010, 16:57:11 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
avb1003Это вообще мимо. Именование функции, число и тип параметров должны быть уже известны. То есть вызов должен делаться после "объявления функции", как это называется в книжках по С++. Вызов чего , простите? Имени, числа и типов параметров? Хе-хе. avb1003Начните что-нибудь программировать и все станет гораздо очевиднее. Ну, давайте попробую. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Но разве такое преобразование очевидно? И уж тем более его вычислительный смысл? Мне -- нет. Подумать есть над чем, вполне. avb1003Здесь вообще непонятно, что Вы хотели сказать. В данном контексте функция или же подпрограмма просто "поименованная или иным образом идентифицированная часть компьютерной программы, содержащая описание определённого набора действий...." Именно, набор действий . Но "объявленная функция" (что Вы считаете достаточным для её вызова) ещё не является ни действием ни набором действий -- она лишь имя и ничего более. Так на каком основании она может являться частью подпрограммы? Можно, конечно, априорно обозвать рекурсивную функцию "действием", тогда определение вполне удовлетворяется. Только такой тип рассуждений в логике называется "порочный круг" и на практике может привести к ошибкам. А может и не привести (как в данном случае). Вряд ли кто-то сомневается, что вполне можно пользоваться рекурсией, не обладая пониманием того, что это такое. Но, как мне показалось, топик как раз о том, что это такое , а не как этим пользоваться . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2010, 17:39:47 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
Эх, самое главное-то пропустил я. avb1003придумываете несуществующие проблемы. Кто лишил Вас возможности "именовать" функцию? Меня -- никто. Но функция, являясь лишь "набором действий", вовсе не обязана обладать именем. Ведь не обязана? Конечно, не обязана, и анонимные функции нынче очень широко используются, да и наивно было бы думать, что процессор что-то знает про то, как там была названа в коде та или иная функция -- foo() или bar(). Следовательно, должна быть возможность абстрагироваться от имени функции и от процесса именования вообще. Если такой возможности я не вижу, то это означает, что связь между моим кодом и процессом его исполнения компьютером для меня не ясна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2010, 17:43:52 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
junior idiotЭх, самое главное-то пропустил я. avb1003придумываете несуществующие проблемы. Кто лишил Вас возможности "именовать" функцию? Меня -- никто. Но функция, являясь лишь "набором действий", вовсе не обязана обладать именем. Ведь не обязана? ...Именем не обязана. Если функция вызывается только из одно места, то это даже может быть удобно - не давать имени функции, если этого не нужно. Perl, например, предоставляет эту возможность. Но в определении, которое я привел написано: "...или иным образом идентифицированная часть компьютерной программы...", то есть, что-то вроде адреса у нее обязательно есть.junior idiot...... Конечно, не обязана, и анонимные функции нынче очень широко используются, да и наивно было бы думать, что процессор что-то знает про то, как там была названа в коде та или иная функция -- foo() или bar() ...А так никто и не думает. Процессор "знает" только команды, котороые он обязан выполнять.junior idiot... Следовательно, должна быть возможность абстрагироваться от имени функции и от процесса именования вообще. ... У Вас никто не отнимает возможности, например, поработать процессором. Но стоит ли? Абстракции, имена и т.п. вводятся(по крайней мере, как правило) для облегчения задачи, а вовсе не для того, чтобы запутать/обмануть неофитов. junior idiot...Если такой возможности я не вижу, то это означает, что связь между моим кодом и процессом его исполнения компьютером для меня не ясна.С этим спорить почти невозможно. Разве что с помощью детектора лжи и т.п. Вот когда кто-то говорит, что ему все ясно, тут гораздо больше возможности доказать обратное, если этот кто-то ошибается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2010, 20:11:00 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
avb1003Именем не обязана. Если функция вызывается только из одно места, то это даже может быть удобно - не давать имени функции, если этого не нужно. Perl, например, предоставляет эту возможность. это не единственное применение и далеко не только перл предоставляет такую возможность. avb1003 Но в определении, которое я привел написано: "...или иным образом идентифицированная часть компьютерной программы...", то есть, что-то вроде адреса у нее обязательно есть. это определение функций как подпрограмм, что свойствено императивному подходу и старым процедурным языкам. в функциональном функции не являются "подрограммами" в этом смысле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2010, 21:15:20 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
k0rvin это не единственное применение например с помощью анонимных функций можно моделировать типы данных, например "пару" (Сассман в видео SICP назвал этот приём "хаком Черча" =)): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2010, 21:25:56 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
Рекурсия - это рекурсия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2010, 21:56:19 |
|
||
|
Что такое рекурсия, есть ли доходчивая инфа?
|
|||
|---|---|---|---|
|
#18+
k0rvinavb1003Именем не обязана. Если функция вызывается только из одно места, то это даже может быть удобно - не давать имени функции, если этого не нужно. Perl, например, предоставляет эту возможность. это не единственное применение и далеко не только перл предоставляет такую возможность.А где Вы увидели про единственность или про исключительность Perl?k0rvin avb1003 Но в определении, которое я привел написано: "...или иным образом идентифицированная часть компьютерной программы...", то есть, что-то вроде адреса у нее обязательно есть. это определение функций как подпрограмм, что свойствено императивному подходу и старым процедурным языкам. в функциональном функции не являются "подрограммами" в этом смысле.Ну и что, что "... императивному...", что "... старым ..." или "... процедурным ..." ? Отвечая на вопрос, я думал оказать промощь тому , кто, как мне показалось, действительно зашел в тупик от бессмысленных размышелений, а вовсе не пытался изрекать истину в последней инстанции, тем более мерятся длиной "выступающих частей тела". Да, я не являюсь специалистом по языку Лисп, хотя и прочитал книгу по нему, смотрел примеры и т.д. и когда в начале 90-х мне, тогда программисту на Фортране, понадобились дополнительные члены в каких-то формулах из учебников, я сам их нашел с помощью какой-то Лисп-подобной системы. Не помню точно, но кажется это был MuMATH Но, повторяю, я не являюсь специалистом по Лисп и не готов комментировать/давать советы. По крайней мере бесплатно и на этом форуме. Могу только предположить, IMHO конечно, что человеку испытывающими проблемы с Лисп, имеет смысл заняться чем-то попроще - например, программированием на Фортране. Или на Perl, что с моей точки зрения полезней и интересней. Опять-таки IMHO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.04.2010, 18:25:13 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=36545243&tid=1343758]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
175ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 501ms |

| 0 / 0 |
