|
0 / 0 / 0
Регистрация: 24.06.2013
Сообщений: 55
|
|
Что такое рекурсия? Зачем она нужна?02.07.2013, 19:52. Показов 17111. Ответов 41
Метки нет (Все метки)
Объясните пож человеческим языком, что такое Рекурсия.
Я знаю что это вызов функции самой себя. Но всё равно не могу догнать зачем она нужна. Заранее спасибо!
0
|
|
| 02.07.2013, 19:52 | |
|
Ответы с готовыми решениями:
41
Что такое виртуальная функция и зачем она нужна? Что такое тестирующая программа и зачем она нужна? Что делает функция compare в коде и зачем она нужна в qsort |
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
||
| 13.05.2017, 17:15 | ||
|
Обход дерева при помощи рекурсии выглядит элегантно и понятно, в отличие от цикла. Для каждой задачи свои методы. А ошибки... Они в прямой зависимости от кривизны рук...
0
|
||
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
||
| 13.05.2017, 17:29 | ||
![]() Рекурсия - прекрасный метод для решения соответствующих задач. Чтобы не было переполнения стека, необходимо четко представлять себе возможную глубину рекурсии и иметь прямые руки...
0
|
||
| 13.05.2017, 18:01 | |||
|
0
|
|||
|
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
|
||||
| 13.05.2017, 18:15 | ||||
|
Добавлено через 4 минуты
0
|
||||
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
||
| 13.05.2017, 18:28 | ||
|
Удобно тем, что коррекция происходит быстро и практически не зависит от объема информации
0
|
||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|
| 13.05.2017, 18:55 | |
|
Добавлено через 17 минут Итак. 1.Без рекурсии обойтись можно. Есть циклы и, в конце концов, ГОУТО 2.Для реализации существенно рекурсивных алгоритмов нужен стек. Его можно и самостоятельно смоделировать. Но зачем, если язык уже предлагает готовое? Использование этого готового стека упрощает ваш код, но вы теряете прямой контроль за его поведением. За переполнением, например. Контроль косвенный возможен, но его применение весьма непросто, средо/аппаратно зависимо и может усложнить код настолько, что моделируемый стек покажется конфеткой. 3. Как говаривал К.Прутков, "Даже не пытайтесь объять необъятное". Ваш компьютер (вместе со всеми сетями мира) - всего лишь конечный автомат. И совершенно нелепо решать на нем истинно бесконечные задачи. Ограничения есть всегда. В качестве упражнения попробуйте написать программу, выводящую все десятичные знаки корня из двух.
0
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||
| 13.05.2017, 19:02 | |||
|
0
|
|||
|
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
|
||
| 13.05.2017, 19:10 | ||
|
И вообще, о чем мы тут говорим? Пред написанием программы надо сначала все продумать. И принять тот метод решения, который приемлем. Нет универсальных методов. Все имеет свои ограничения.
0
|
||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|
| 13.05.2017, 19:36 | |
|
0
|
|
|
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
|
||
| 14.05.2017, 12:47 | ||
|
но ведь как раз в том случае можно все написать через for внутри функции
0
|
||
|
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
|
||
| 14.05.2017, 18:00 | ||
|
или это уже зарезервированные вещи в языке С++ ?
0
|
||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 14.05.2017, 18:10 | ||
|
Вызвать что-то там. Выкинуть из стека данные текущей функции. return. Оптимизация 1: Выкинуть из стека данные текущей функции (их все равно больше никто не использует, ведь дальше return). Вызвать что-то там. return. Оптимизация 2: Выкинуть из стека данные текущей функции (их все равно больше никто не использует, ведь дальше return). goto что-то там (из-за особенностей аппаратной реализации вызова функций, эквивалентно паре call/ret идущей строго друг за другом).
2
|
||
|
"C with Classes"
|
||||||
| 14.05.2017, 19:14 | ||||||
|
sancho1996,
0
|
||||||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
|
||
| 14.05.2017, 19:15 | ||
|
если так, факториал есть произведение всех натуральных чисел от 1 до n, это цикл а если, факториал есть произведение n на факториал n-1, факториал 1 равен 1, то это рекурсия
0
|
||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 14.05.2017, 19:22 | ||
0
|
||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 14.05.2017, 19:31 | ||
|
Я и так тебе верю! ![]() Добавлено через 53 секунды ЗЫ. Смотри в этой теме мой пост про Кнута.
0
|
||
| 14.05.2017, 19:31 | |
|
Явная специализация, зачем она нужна?(Шаблоны функций)
сегодня наконец то понял что такое КЛАСС, и ОБЪЕКТ. понято всё, кроме одного - зачем всё это? в смысле, можно же без этого? так зачем жизнь усложнять? Кто-нибудь может подробно объяснить, что такое allocators, зачем это и что с ними делать? Нигде не нашёл инфы Что такое hash-таблицы, и зачем они нужны? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|