LINUX.ORG.RU

рекурсия и итерация

 итерация,


1

3

Приветствую всех.
Вопрос мой довольно праздный, и возможно кому-то покажется бесполезным. Тем не менее. Не кажется ли вам, что то что сейчас понимается под этими 2 терминами несколько не соответствует действительности. Вот что я имею в виду. У нас есть рекурсивный процесс, он интуитивно понятен на примерах трельяжа, стихотворения «у попа была собака» и пр. В программировании он может быть выражен 2-мя способами: с помощью итерациии и с помощью того, что принято называть рекурсией
На концептуальном уровне, это, безусловно, неверно, поскольку мы имеем 1 процесс и 2 способа его реализации, и называть способ реализации процесса самим процессом не совсем правильно. Таким образом, я хочу сказать, что выражение «рекурсивная реализация алгоритма» значит то же, что «рекурсивная реализация рекурсивного алгоритма» - бессмысленный набор слов, и, при этом, сама реализация, собственно не имеет ничего общего с рекурсией
Хотелось бы попросить воздержаться от постов вроде «Ты не знаешь язык X и математическую теорию Y, поэтому ты чмо». Если то, что я написал кажется вам глупостью, просто проходите мимо.
Итак, ваши мнения, Господа.

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

Elyas ★★★★★
()
Последнее исправление: Elyas (всего исправлений: 1)
Ответ на: комментарий от Elyas

Вы хотите сказать, что я прав, терминология неудачна?

anonimous
() автор топика

Продолжаем цикл «anonimous познаёт мир». Я рекомендую тебе осилить концепцию термин и понять, что неважно, как называется та или иная сущность, важно, что она из себя представляет. Терминологические споры --- одни из самых бесполезных.

P.S. Полный смысл вопроса ниасилил, особенно логический вывод про бессмысленный набор слов.

P.P.S

В следующий понедельник, когда отцы уехали на работу, мы, дети, играли во дворе. И один паренёк мне говорит: «Видишь вон ту птицу? Какая это птица?»

Я сказал: «Не имею ни малейшего понятия о том, какая это птица».

Он говорит: «Это коричневошейный дрозд. Твой отец ничему тебя не учит!»

Но всё было как раз наоборот. Он уже научил меня: «Видишь ту птицу? — говорит он. — Это певчая птица Спенсера». (Я знал, что настоящего названия он не знает.) «Ну так вот, по-итальянски это Чутто Лапиттида. По-португальски: Бом да Пейда. По-китайски: Чунь-лонь-та, а по-японски: Катано Текеда. Ты можешь знать название этой птицы на всех языках мира, но, когда ты закончишь перечислять эти названия, ты ничего не будешь знать о самой птице. Ты будешь знать лишь о людях, которые живут в разных местах, и о том, как они её называют. Поэтому давай посмотрим на эту птицу и на то, что она делает — вот что имеет значение». (Я очень рано усвоил разницу между тем, чтобы знать название чего-то, и знать это что-то.)

(c) Р. Фейнман. Какое ТЕБЕ дело до того, что думают другие?

anonymous
()
Ответ на: комментарий от anonymous

Я с Вами абсолютно согласен, но терминология порой вводит в заблуждение новичков, таких как я, например, а иногда и не новичков. К тому же, сам факт, что это устоялось и повсеместно использется, говорит о том, что многие этой тонкости не понимают. Отсюда такие высказывания как «рекурсия божественна, поэтому я буду писать рекурсивно»,

anonimous
() автор топика
Ответ на: комментарий от anonymous

Но всё было как раз наоборот. Он уже научил меня: «Видишь ту птицу? — говорит он. — Это певчая птица Спенсера». (Я знал, что настоящего названия он не знает.) «Ну так вот, по-итальянски это Чутто Лапиттида. По-португальски: Бом да Пейда. По-китайски: Чунь-лонь-та, а по-японски: Катано Текеда. Ты можешь знать название этой птицы на всех языках мира, но, когда ты закончишь перечислять эти названия, ты ничего не будешь знать о самой птице. Ты будешь знать лишь о людях, которые живут в разных местах, и о том, как они её называют. Поэтому давай посмотрим на эту птицу и на то, что она делает — вот что имеет значение». (Я очень рано усвоил разницу между тем, чтобы знать название чего-то, и знать это что-то.)

[offtop]Кстати, если уж углубляться в философский аспект, я позволю себе заметить, что делает птица, не является ее истиным значением, потому что всегда есть субъект, который оценивает, что она делает. Для одного, смысл этой птицы - певчая птица, для другого - гадящая птица. Так что, не так все просто[/offtop]

anonimous
() автор топика

Yandex://рекурсивная+реализация+алгоритма ~ 240 ответов ==> так никто не говорит (кроме неудачников). Хотя в определённых ситуациях авторы вынужденны так сказать.

AlexVR ★★★★★
()
Ответ на: комментарий от AlexVR

Yandex://рекурсивная+реализация+алгоритма

А если вот так «рекурсивная реализация алгоритма»(в кавычках), правда это гугл, в яндексе, наверное то же самое - Результатов: примерно 1 740 (0,25 сек.) Чтобы делать выводы из такой статистики, надо знать поисковые алгоритмы. А мы с тобой их не знаем толком.

anonimous
() автор топика
Ответ на: комментарий от AlexVR

Всё одно мало.

Ну как мало, ведь это количество только проиндексированных документов. В реале - это в 1000 раз больше. Все познается в сравнении. Голая жанна фриске, конечно больше будет, ну так и потребителей этого добра намного больше.

anonimous
() автор топика

Рекурсия - это способ представления функции. Т.е. мы можем сказать f(n) = n, или представить её в виде рекурсии: f(n) = f(n-1) + 1. Рекурсивный алгоритм - это просто вычисление ф-ции по ее рекурсивному выражению.

iVS ★★★★★
()
Ответ на: комментарий от iVS

Я как раз и высказываюсь против такого понимания рекурсии. Вы определяете здесь натряд по индукции. само это определение рекурсивно. и эту мысль можно выразить в виде итерации, смысл того, что определение рекурсивно от этого не изменится

anonimous
() автор топика
Ответ на: комментарий от iVS

Рекурсия - это способ представления функции.

Рекурсия - это абстрактный интуитивный процесс, а не способ представления этого пр-сса.

anonimous
() автор топика
Ответ на: комментарий от anonimous

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

ananas ★★★★★
()
Ответ на: комментарий от ananas

Я с этим абсолютно согласен, поэтому я и указываю на путаницу в терминологии, которая способна ввести в заблуждение.

anonimous
() автор топика
Последнее исправление: anonimous (всего исправлений: 1)
Ответ на: комментарий от anonimous

и эту мысль можно выразить в виде итерации, смысл того, что определение рекурсивно от этого не изменится

Я вот это предложение не понял, блин. Есть масса вещей, которые естественно выражать рекурсивно. Есть вещи, которые проще реализуются/доказываются при помощи рекурсии, man математическая индукция. Есть выражения, для которых рекурсия вообще единственный способ представления. Рекурсия - это способ выражения, всё. С этим согласен?

iVS ★★★★★
()
Ответ на: комментарий от iVS

Рекурсия - это способ выражения, всё. С этим согласен?

Нет, я уже написал

Рекурсия - это абстрактный интуитивный процесс, а не способ представления этого пр-сса.

anonimous
() автор топика
Ответ на: комментарий от anonimous

Рекурсия - это абстрактный интуитивный процесс, а не способ представления этого пр-сса.

Нет, это способ выражения. Как ты реализуешь алгоритм, не зная, как он выражается на языке математики? Выражение первично. А то, что у программистов мозг не способен абстрагироваться дальше «делаем раз, делаем два», не мои проблемы.

iVS ★★★★★
()
Ответ на: комментарий от anonimous

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

iVS ★★★★★
()
Ответ на: комментарий от iVS

Выражение первично.

То есть вы хотите сказать, что есть какой либо пр-сс, природный-ли, или мысленный, и после того как мы его выразили, скажем языком математики, то это выражение становиться первично по отношению к самому пр-ссу

anonimous
() автор топика
Ответ на: комментарий от iVS

Ааа, ты из тех, кто изобретает свою терминологию

Я не изобретаю тер-ию, я пытаюсь понять, что есть что, на самом деле. А здесь мы наблюдаем подмену понятий, представление объекта - это не сам объект, для меня это очевидно.

anonimous
() автор топика

а если один и тот же алгоритм можно реализовать как рекурсивно так и итерационно, потому как алгоритм не опускается до таких мелочей как выбор следующего элемента, то это не алгоритм вовсе?

//мне кажется что ты виртуал тажата и призван показать как нам плохо будет без его банхаммера

RedPossum ★★★★★
()
Ответ на: комментарий от anonimous

после того как мы его выразили, скажем языком математики, то это выражение становиться первично по отношению к самому пр-ссу

Да

iVS ★★★★★
()
Ответ на: комментарий от ilammy

Может прочту позже, но даже по названию можно понять, что должно быть не «рекурсивная ф-я», а ф-я, отображающая рек-сию.

anonimous
() автор топика
Ответ на: комментарий от anonimous

представление объекта - это не сам объект, для меня это очевидно

Невозможно изучать сам объект. Возьмите бабочку, с точки зрения биологии мы изучаем ее вид, химии - вещества, благодаря которым ее окраска принимает нужный вид, физики - механика полета. Разве отсюда следует, что изучив бабочку с точки зрения биологии, физики, химии и еще бог знает чего, мы изучим бабочку? Нет, никогда не изучим. А изучим представление о ней с точки зрения этих наук.

iVS ★★★★★
()
Ответ на: комментарий от anonimous

А здесь мы наблюдаем подмену понятий, представление объекта - это не сам объект, для меня это очевидно.

google://аксиома выбора, интуиционизм, конструктивизм

С вопросом, можно ли считать математическое описание объекта достаточным для утверждения его сущестования, не всё так просто и однозначно.

ilammy ★★★
()
Ответ на: комментарий от iVS

а если один и тот же алгоритм можно реализовать как рекурсивно так и итерационно, потому как алгоритм не опускается до таких мелочей как выбор следующего элемента, то это не алгоритм вовсе?

Почему не алгоритм? Как это следует из того что я написал. Я гоаорю, что не надо путать абстрактный рекурсивный алгоритм, с его «типарекурсивной» реализацией. От того, что Вы реализуете его с помощью итерации, он менее рекурсивным не станет.

anonimous
() автор топика
Ответ на: комментарий от anonimous

Может прочту позже, но даже по названию можно понять, что должно быть не «рекурсивная ф-я», а ф-я, отображающая рек-сию.

Прекрати уже нести этот бред.

Waterlaz ★★★★★
()
Ответ на: комментарий от ilammy

А здесь нет вопроса сужествования объекта. Здесь вопрос представления. И это значит, что представление объекта, даже фантомного, не является самим обьектом.

anonimous
() автор топика
Ответ на: комментарий от anonimous

Сам себя цитируешь? А зачем адресуешь мне? Я вообще не собираюсь спорить об алгоритмах, поскольку никакого отношения к понятию рекурсии они не имеют.

iVS ★★★★★
()
Ответ на: комментарий от anonimous

Может прочту позже, но даже по названию можно понять, что должно быть не «рекурсивная ф-я», а ф-я, отображающая рек-сию.

Хитрость в том, что они на самом деле отображают итерацию :3 С помощью рекурсии.

ilammy ★★★
()
Ответ на: комментарий от iVS

об алгоритмах, поскольку никакого отношения к понятию рекурсии они не имеют.

Ну, значит, у нас с Вами разные понятия алгоритма.

anonimous
() автор топика

Где тег «вещества»? Предупреждать же надо.

anonymous
()
Ответ на: комментарий от ilammy

Хитрость в том, что они на самом деле отображают итерацию :3 С помощью рекурсии.

Ну, мне видно не дано этого понять, поскольку, мне видится, что как-раз наоборот, принцип самоповторения, самоиспользования, здесь является первичен, а выражение его, техника, сугубо вторична.

anonimous
() автор топика
Ответ на: комментарий от anonimous

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

Не согласен, потому что не вижу связи между понятием истинного значения и субъектом. Согласно моему мировоззрению, птица может успешно существовать и без субъекта, и субъект может задаться целью изучить поведение птицы в условиях, максимально приближённых к некоторым идеальным, например, к отсутствию субъекта. Это лежит в основе теории физического (да и не только) эксперимента. Впрочем, мне сейчас некогда развивать это обсуждение, тем более что я подозреваю, что мы опять начнём обсуждать термины, а не концепции.

anonymous
()
Ответ на: комментарий от iVS

да, у меня «рекурсивный алгоритм» != «рекурсия». впрочем, я повторяюсь

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

anonimous
() автор топика
Ответ на: комментарий от anonymous

что мы опять начнём обсуждать термины, а не концепции.

Нет здесь вопрос как раз концептуальный. Но он скорее философский и касающейся вплотную мат-ки. Фреге приводил подобный пример с «утренней звездой», значением этого слова. Если вы вникните в это глубже, Вы поймете, что не все так просто в вопросе смысла и существования.

anonimous
() автор топика
Ответ на: комментарий от anonimous

путаешь рекурсивную функцию и рекурсивный (или итеративный, в зависимости компилятора/интерпретатора) процесс, который порождает компилятор/интерпретатор, когда вычисляет эту функцию

mentalmenza
()
Ответ на: комментарий от iVS

Я про это:

Я вообще не собираюсь спорить об алгоритмах, поскольку никакого отношения к понятию рекурсии они не имеют.

anonimous
() автор топика

А если ещё вспомнить, что любители рекурсии очень любят хвостовую(ну не любят а приходится любить, иначе будет стэк оверфлоу), т.е. фактически компилятор переделывает рекурсию в цикл, но цикл сразу писать — это не круто, поэтому надо извращаться и обязательно делать рекурсию, и для производительности обязательно хвостовую.

Bad_ptr ★★★★★
()
Ответ на: комментарий от mentalmenza

Я вообще не собираюсь спорить об алгоритмах, поскольку никакого отношения к понятию рекурсии они не имеют.

Нет я зичего не путаю. Вначале мы имеем абстрактный алгоритм, на уровне представления, который реализуем на машине любым удобным для нас способом, и порожденные вычисления, будут представлять этот процесс. Вычисления, но не синтаксическая запись!

anonimous
() автор топика
Ответ на: комментарий от anonimous

Понятие рекурсии не выводится из понятия рекурсивного алгоритма. Ты можешь сколько угодно рассуждать о них - это не повлияет на рекурсию никак. Поскольку алгоритм - всего лишь реализация. Равно как колесо поезда, велосипеда или машины - это всего лишь реализации. И ты можешь сколько угодно спорить о свойствах колес поезда, велосипеда или машины, сравнивать их, щупать, пробовать на вкус, выяснять, что из них больше колесо. На понятие колеса это не окажет никакого влияние, поскольку оно первично, а реализации вторичны.

iVS ★★★★★
()

выражение «рекурсивная реализация алгоритма» значит то же, что «рекурсивная реализация рекурсивного алгоритма»

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

Хотя момент вообще тонкий. Что мы считаем «реализацией» алгоритма? Код? А если алгоритм описан просто в виде текста или схемы? Это тоже можно считать видами реализации. Выходит, что именно конкретная реализация алгоритма придает ему свойство итеративности/рекурсивности, а говорить об этом свойстве в отрыве от реализации не представляется возможным.

CARS ★★★★
()

выражение «рекурсивная реализация алгоритма» значит то же, что «рекурсивная реализация рекурсивного алгоритма» - бессмысленный набор слов

хотя рекурсия и переводится иногда в итеративный вид, но во первых не всегда, а во вторых это всё равно _разные_ реализации. И дают разный результат в общем случае. Также, как (a*a - b*b) !== (a-b)*(a+b)

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

emulek
()
Ответ на: комментарий от CARS

а говорить об этом свойстве в отрыве от реализации не представляется возможным.

Да почему, если порождаемые вычисления, все равно рекурсивны по своей сути.

anonimous
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.