Страница 1 из 1
Добавлено: Пн июн 06, 2005 01:42
Симба
Что такое Рекурсия? Решил я проискать в энциклопедии и там когда нашёл слово «Рекурсия» под ним было сказанно
[off]добавлено спустя 1 минуту:[/off]

А цвета всё равно не работают

Добавлено: Вт июн 07, 2005 21:08
PunKersha
огооо
это ж надо до такого додуматься
Добавлено: Ср июн 08, 2005 12:06
Симба
PunKersha,
Страшно?
Добавлено: Пн июн 27, 2005 19:30
ZWERI
Добавлено: Вс фев 04, 2007 19:57
Goldenerblitz
Да я сам рекурсия...
Добавлено: Вс фев 04, 2007 20:02
Кирк
Goldenerblitz,
А шо це таке?
Добавлено: Вс фев 04, 2007 20:07
Goldenerblitz
да х3...

Добавлено: Вс фев 04, 2007 21:54
M@li4iK
Вообщето рекурсия, это когда в теле функции задана голова функции! Что-собственно и представлено на рисунке!
Добавлено: Пн фев 05, 2007 07:22
Симба
<a href=https://bugaga.ru/jokes/ target=_blank>прикол</a> в том, что у функции есть одно единственное решение для самого простого частного случая проблемы и если решение не сработало (скажем для более усложнённой проблеммы) тогда мы делим прроблему на на две под пролемы (как буд-то разлогаем выражение на множители) и решаем каждую разложенную по оодельности.
То есть если мы возовим функцию
«Решается?
» для проверки можно ли решить проблему и передаим ей для проверки
«(проблема)
» то тогда если фунция не сможет решить проблему за одно действие — она разложит её на две подпроблемы и вызовит сама себа чтобы решить каждое из подпроблем и так до бесконечности пока она не найдёт точный ответ на вопро решается ли проблема:
да или
нет
Код: Выделить всё
Решается?(проблема)
{
действие;
если_правда (проблема = решена)
{
вернуть ("правду");
завершить_Фунцию;
}
// Если проблема не решилась простым способом то тогда
// Разабьём её на под проблемы и попытаемся решить их точно так же…
разбить проблему на две подпроблемы;
если_правда( Решается?(под_проблема_1) или Решается?(под_проблема_2) )
{
вернуть ("правду");
завершить_Фунцию;
}
в_противном_случаяи
{
вернуть("горе и несчастье");
}
}
В реальности мало где применяются рекурсивные решения. Обычно только для таких задач которые нельзя решить линейным, обыкновенным решением. И на это есть пара весомых аргументов: вызов и выполнение функции значительно медление выполнения базовых команд и в линейных решениях как правило обьём памяти рабочий функции не возрастает, а в рекурсии каждый повторный вызов функции заставляет
копм резервировать для неё такой же обьём памяти (для перемменых).
Пример использования рекурси в — MS Paint`е когда вы
„заливаете“ какое нибудь пространство одним цветом.
Можите сами проверить низкую ефиктивность рекурсии. Создайте новый рисунок с большим разрешением и залейте его одим цветом. Быстро залили? А теперь нарисуйте на нем сложный лабиринтно-образный обьект так, что его площадь будет хотя бы половыину от всего размера но чтоб у него было как можно меньше ровных линий и много муссора — разных пиксилей от, (спрея например), и тогда вам покажеться, что MS Paint тормозит при заливки более меньшой площади.
[off]P.S.
На самом деле действий для решения базовой (фундаментальной) проблемы может быцть более одного.[/off]
Добавлено: Пн фев 05, 2007 07:55
жена бэтмэна
блин! ничё не поняла.....

Добавлено: Пн фев 05, 2007 10:44
Симба
Грубо говоря это принцип решений который аналогичен тому как в матиматике из a(b+c+1) получается ab + ac – a
Добавлено: Пн фев 05, 2007 12:22
жена бэтмэна
о! а вот так понятно!
Добавлено: Пн фев 05, 2007 14:23
Goldenerblitz
Симба,
ну псиб 4то обеснил!