Обсуждение:Рекурсия (KQvr';yuny&Jytrjvnx)
Проект «Информационные технологии» (уровень I, важность для проекта высшая)
Эта статья тематически связана с вики-проектом «Информационные технологии», цель которого — создание и улучшение статей по темам, связанным с информационными технологиями. Вы можете её отредактировать, а также присоединиться к проекту, принять участие в его обсуждении и поработать над требуемыми статьями. |
Untitled
[править код]Господа. Сейчас наблюдается некоторая война правок относительно необходимости рекурсии в статье про рекурсию. Я бы предложил несколько вариантов:
- оставить статью без рекурсивных ссылок
- рекурсия в цитате [1].
- рекурсия в см. также [2].
- рекурсия в первичном определении [3]
George Shuklin 13:55, 22 мая 2006 (UTC)
- Георгий, боюсь я Вам покажусь ужасно занудным, но, возможно Вам стоит просто подготовить статью о рекурсии для абсурдопедии (наверняка с Вашим тону=ким чувством юмора статья получится отличная), а отсюда дать ссылку на неё. Тогда и овцы будут сыты и волки целы. MaxiMaxiMax 14:05, 22 мая 2006 (UTC)
- Оставить без ссылок пока кто-нибудь не придумает, зачем они нужны. В указанном виде - ссыкли бессмысленны и ничего не иллюстрируют, только запутывают читателя. Может быть в википедии и можно отыскать понятия определённые рекурсивно, но это надо постараться. --Amoses @ 14:12, 22 мая 2006 (UTC)
- Думаю, что существуют статьи, рекурсивно ссылающиеся друг на друга в определении, но это нужно исправлять, а не культивировать. MaxiMaxiMax 14:16, 22 мая 2006 (UTC)
- Оставить без ссылок пока кто-нибудь не придумает, зачем они нужны. В указанном виде - ссыкли бессмысленны и ничего не иллюстрируют, только запутывают читателя. Может быть в википедии и можно отыскать понятия определённые рекурсивно, но это надо постараться. --Amoses @ 14:12, 22 мая 2006 (UTC)
- Рекурсивных ссылок не надо. Лучше поставить ссылку на Y-комбинатор. Lispnik 14:16, 22 мая 2006 (UTC)
По обсуждению в жожо решил взять часть статьи из английской вики. George Shuklin 14:22, 22 мая 2006 (UTC)
- Весь этот юмор относится к вырожденному случаю "дурной", "бесконечной" рекурсии. Надо это отметить, а то он действительно как-то дескридитирует идею индукции. --Amoses @ 14:38, 22 мая 2006 (UTC)
Я таки это сделал! В статье есть ссылка на саму статью, и к такому виду, думаю, возражений не будет. ^_^George Shuklin 14:42, 22 мая 2006 (UTC)
(на правах псевдовиртуала :) В принципе, рекурсивная ссылка в статье о рекурсии вещь довольно остроумная, и, вероятно, нелишняя. Но эта рекурсия должна быть явно выражена. Т.е. я бы сделал
- либо единственную рекурсивную ссылку в разделе Cм. также: Рекурсия (NB: не "Рекурсивное определение рекурсии")
- либо сделал ссылки на каждой интерации слова рекурсия - "чтоб дошло :)"
Все спрорные варианты - не выражены, поэтому я не вижу в них смысла - их мало кто заметит. Grain 14:49, 22 мая 2006 (UTC)
- «Рекурсия — см. Рекурсия» — это каноничный анекдот-определение. Оставить. Oal 23:25, 22 мая 2006 (UTC)
"Реку́рсия — метод определения класса объектов или методов предварительным заданием одного или нескольких (обычно простых) его базовых случаев или методов, а затем заданием на их основе правила построения определяемого класса, ссылающегося прямо или косвенно на эти базовые случаи." - вот потому вас и называют тем нехорошим словом, которое ваш фильтор правок не пропускает, это же надо так "просто" и "понятно" обьяснить банальный круговорот и возвращение к началу... Не всякий петрик на такое способен... Black Baron95.165.108.178 03:48, 15 июля 2010 (UTC)
- У вас есть шанс доказать, что вы не входите в число фильтроправочных, Википедия:Правьте смело, если есть ВП:АИ Fractaler 18:15, 16 июля 2010 (UTC)
Что иллюстрируем-то
[править код]В чём будет заключаться показательность такого примера ? (Не вдаваясь в суть предмета) Что конкретно будет иллюстрировать такая ссылка ? Как сейчас, в разделе юмор - наверное, можно... --Kaganer 18:48, 22 мая 2006 (UTC)
Лем?
[править код]«Рассказ о разумной машине, которая обладала достаточным умом и ленью, чтобы для решения поставленной задачи построить себе подобную, и поручить решение ей». Хмм... а это случайно не Шекли? --ajvol 20:15, 22 мая 2006 (UTC)
- Нет. Там серия про роботов просветлённых, мудрейших и т.д. Наткнусь, напишу точные названия. (Шекли не доводит до настоящего абсурда :) George Shuklin 21:21, 22 мая 2006 (UTC)
Наглядный пример рекурсии :)
[править код][4] :) Edward Chernenko 17:06, 27 мая 2006 (UTC)
Предлагаю вставить код программы на русском, как в 1С, вычисляющей факториал заданного числа. Очень наглядно! Wormantson 11:23, 19 апреля 2007 (UTC)
- Только в виде ОЧЕНЬ короткого псевдо-кода/алгоритма. Например
- Чтобы найти факториал Числа Х
- Если Х=1 то факториал равен 1
- Если Х не равен 1 то найти факториал числа (Х-1) и умножить на Х.
- Так нагляднее, потому-что не все знают языки програмирования, а так понятнее, и все могут выполнить такой алгоритм даже без компьютера.--Hq3473 17:36, 19 апреля 2007 (UTC)
А факториал таки рекуррентная, а не рекурсивная функция. И совсем не яркий пример рекурсии. 78.29.11.13 16:23, 9 сентября 2010 (UTC)
Программный Код
[править код]Предлогаю или убрать код в ActionScript в викиучебник, или переписать псеводо-кодом. 90%(а то и больше) читателей все равно не поймут, а википедия не учебник по ActionScriptу.--Hq3473 03:15, 23 мая 2007 (UTC)
- Вперёд, переписывай. Ужé две недели прошло с твоего предложения, и никто не возразил. —Mithgol the Webmaster 06:57, 6 июня 2007 (UTC)
- Сделано.--Hq3473 02:19, 7 июня 2007 (UTC)
Рекурсия в программировании
[править код]"В программировании рекурсия — вызов функции или процедуры из неё же самой (обычно с другими значениями входных параметров), непосредственно или через другие функции (например, функция А вызывает функцию B, а функция B — функцию A)."
Предлагаю заменить на:
В программировании рекурсия — вызов функции (процедуры) из неё же самой, непосредственно (простая рекурсия) или через другие функции (сложная рекурсия),например, функция А вызывает функцию B, а функция B — функцию A.
1) "обычно с другими значениями входных параметров" - не принципиально для определения, параметров может и не быть.
2) функция А может вызывать процедуру В, а та в свою очередь А и наоборот.
--tim2 09:24, 11 ноября 2007 (UTC)
- Уточнение "процедура" это ИМХО излишне, т.к. разделение искуственное и введено в преимущественно в паскале (зачем?). Вообще, если не рассматривать сторонние эффекты, в рамках концепции функций один и тот же набор параметров должен приводить к одному и тому же поведению (т.е. зацикливанию). Использование внешнего хранилища информации для управления рекурсией в общем случае эквивалентно просто расширению списка аргументов. #!George Shuklin 10:32, 11 ноября 2007 (UTC)
- Зачем в Паскале...: чтобы не возвращать результата, когда он не нужен...
- внешнее хранилище - все-таки не параметр (хотя можно обобщить и так, многим будет непонятно), кроме того, процедура может запрашивать функцию, которая, например, считывает следующее имя из FAT на HD, т.о. процедура будет рекурсивно "шарить" по дереву директорий, не зацикливаясь; или запрашивать таймер, или генератор случайных чисел...(Таймер и генератор тоже можно обобщить как "внешнее хранилище", но стоит ли? ;) Для определения это не принципиально, как и то, какой вид подпрограммы (функция или процедура) вызывается. ИМХО, запись "функции (процедуры)" короче, чем "функции или процедуры", и не требует, при повторном появлении слова, снова писать "функции или процедуры". Иначе следовало бы записать:
- "В программировании рекурсия — вызов функции или процедуры из неё же самой (обычно с другими значениями входных параметров), непосредственно или через другие функции или процедуры (например, функция или процедура А вызывает функцию или процедуру B, а функция или процедура B — функцию или процедуру A)."
- Разговор всего лишь о форме (о словах) - по существу определения предлагаю лишь одно уточнение: добавить слова "простая рекурсия" и "сложная рекурсия" (см.выше).--tim2 11:29, 13 ноября 2007 (UTC)
- Прошло время, но возражений больше не последовало. Если все согласны, я исправляю через несколько дней определение на предложенное здесь.--tim2 14:25, 2 декабря 2007 (UTC)
- Сделано. --tim2 02:44, 27 декабря 2007 (UTC)
Другие области
[править код]Мне кажется, что рекурсия - почти исключительно программистский термин (ну, и ещё лингвистика подходит, только имеет свой оттенок), а остальные примеры и области притянуты за уши. Например, Фибоначчи и факториал - это не рекурсия, а рекуррентные последовательности. Это уж от способа вычисления получается - итеративность или рекурсивность. Определение натурального числа - не рекурсия, а индукция. Про физику вообще молчу (зачем обратную связь втянули в эту статью - непонятно). Предлагаю исключить лишнее. infovarius 12:17, 22 марта 2008 (UTC) Полностью согласен, мусорка, а не статья. 78.29.11.13 09:35, 18 сентября 2010 (UTC)
Бесконечно
[править код]Возможно, аноним пытается сказать, что в рамках ограниченного количества доступной оперативной памяти, о бесконечности в программировании речи идти не может. Может, как-то поправить на "потенциально бесконечное" или как-то так? --Illythr (Толк?) 14:42, 30 августа 2009 (UTC)
- Рекурсия — она бывает не только в программах для компьютеров с конечным объемом памяти. В математике и computer science есть понятие рекурсивного типа данных — где рекурсия используется для задания бесконечного множества объектов. Множества всех возможных двоичных деревьев, например. -- X7q 14:53, 30 августа 2009 (UTC)
- Верно, но раздел называется "Рекурсия в программировании". :-) Может, просто приписать "теоретически"? --Illythr (Толк?) 14:58, 30 августа 2009 (UTC)
- Да, я тоже думаю с "теоретически" было бы правильнее. -- X7q 07:14, 31 августа 2009 (UTC)
- "Бесконечную" рекурсию можно организовать и с конечным стеком, было бы желание. 91.207.100.2 07:41, 16 июня 2011 (UTC)
- Верно, но раздел называется "Рекурсия в программировании". :-) Может, просто приписать "теоретически"? --Illythr (Толк?) 14:58, 30 августа 2009 (UTC)
Сcылка на "Recursive Curve Maker"
[править код]Уважаемые участники!
По неопытности я добавил в разделе "Рекурсия:Ссылки" ссылку на "Recursive Curve Maker" без регистрации и без предварительного обсуждения. Это программа построения рекурсивных кривых Гильберта, Серпинского и произвольных кривых с симметрией от 3 до 16-ого порядка. В пакете 90(180) наглядных примеров, с возможностью сохранять построенные кривые в формате BMP (ч.б. и цв.), создавать и отредактировать кривые. В программе такие кривые могут сгенерированы также со случайной закономерностью. Имеет медленный режим для наглядного показа вычерчивания рекурсивной кривой.
Мне кажется это хорошая демонстрация самого понятия рекурсии и рекурсивных объектов (кривых, фракталей). Что и предлагаю обсудить на предмет добавления ссылки в разделах "Рекурсия" и "Фракталь".
Эту программу я написал специально для внука как игру, с целью обучения. Написана она на Pascal-е в среде Delphi.Эта программа не коммерческая и свободно может распространяться.
С уважением --Vahram Mekhitarian 16:20, 10 декабря 2011 (UTC)
- Считаю, что в википедии не место для ссылок на exe'шники на бесплатных хостингах от непонятно кого. Там могут быть и вирусы, и трояны и все что угодно. И мир не только вокруг одной windows вертится. -- X7q 16:29, 10 декабря 2011 (UTC)
- Даже если рядом есть исходник (не заметил его на вашем сайте, впрочем), все равно лучше не ссылаться - мало ли что с exe'шником после компиляции могли сделать. В том числе даже и без участия человека - некоторые вирусы могут сами к чужим .exeшникам прицепляться. -- X7q 16:40, 10 декабря 2011 (UTC)
В математике — путаница
[править код]В первом абзаце —
Конечная рекурсивная функция. ... Классический пример: рекурсивно-определённый факториал... Здесь каждое следующее рекурсивное обращение делается с аргументом, меньшим на единицу.
В конце раздела написано
Другим примером рекурсии в математике является числовая последовательность, заданная рекуррентной формулой,
Этот «другой» пример — повтор того, о чем говорится в первом абзаце. Mx1024 (обс.) 17:53, 23 октября 2017 (UTC)