[off]добавлено спустя 1 минуту:[/off]
Рекурсия...
Модератор: Лора Палмер
- Goldenerblitz
 - ГУРУ
 - Сообщения: 7271
 - Зарегистрирован: Чт июл 06, 2006 15:01
 - Откуда: Geneva
 - Контактная информация:
 
- Goldenerblitz
 - ГУРУ
 - Сообщения: 7271
 - Зарегистрирован: Чт июл 06, 2006 15:01
 - Откуда: Geneva
 - Контактная информация:
 
- Симба
 - Продвинутый
 - Сообщения: 501
 - Зарегистрирован: Вт июл 06, 2004 20:38
 - Откуда: вы догадались?
 - Контактная информация:
 
<a href=https://bugaga.ru/jokes/ target=_blank>прикол</a> в том, что у функции есть одно единственное решение для самого простого частного случая проблемы и если решение не сработало (скажем для более усложнённой проблеммы) тогда мы делим прроблему на на две под пролемы (как буд-то разлогаем выражение на множители) и решаем каждую разложенную по оодельности.
То есть если мы возовим функцию «Решается?» для проверки можно ли решить проблему и передаим ей для проверки «(проблема)» то тогда если фунция не сможет решить проблему за одно действие — она разложит её на две подпроблемы и вызовит сама себа чтобы решить каждое из подпроблем и так до бесконечности пока она не найдёт точный ответ на вопро решается ли проблема: да или нет
В реальности мало где применяются рекурсивные решения. Обычно только для таких задач которые нельзя решить линейным, обыкновенным решением. И на это есть пара весомых аргументов: вызов и выполнение функции значительно медление выполнения базовых команд и в линейных решениях как правило обьём памяти рабочий функции не возрастает, а в рекурсии каждый повторный вызов функции заставляет копм резервировать для неё такой же обьём памяти (для перемменых).
Пример использования рекурси в — MS Paint`е когда вы „заливаете“ какое нибудь пространство одним цветом.
Можите сами проверить низкую ефиктивность рекурсии. Создайте новый рисунок с большим разрешением и залейте его одим цветом. Быстро залили? А теперь нарисуйте на нем сложный лабиринтно-образный обьект так, что его площадь будет хотя бы половыину от всего размера но чтоб у него было как можно меньше ровных линий и много муссора — разных пиксилей от, (спрея например), и тогда вам покажеться, что MS Paint тормозит при заливки более меньшой площади.
[off]P.S.
На самом деле действий для решения базовой (фундаментальной) проблемы может быцть более одного.[/off]
			
			
									
									
						То есть если мы возовим функцию «Решается?» для проверки можно ли решить проблему и передаим ей для проверки «(проблема)» то тогда если фунция не сможет решить проблему за одно действие — она разложит её на две подпроблемы и вызовит сама себа чтобы решить каждое из подпроблем и так до бесконечности пока она не найдёт точный ответ на вопро решается ли проблема: да или нет
Код: Выделить всё
Решается?(проблема)
{
  действие;
  если_правда (проблема = решена)
  {
    вернуть ("правду");
    завершить_Фунцию;
  }
  // Если проблема не решилась простым способом то тогда
  // Разабьём её на под проблемы и попытаемся решить их точно так же…
  разбить проблему на две подпроблемы;
  если_правда( Решается?(под_проблема_1) или Решается?(под_проблема_2) )
  {
    вернуть ("правду");
    завершить_Фунцию;
  }
  в_противном_случаяи
  {
    вернуть("горе и несчастье");
  }
}Пример использования рекурси в — MS Paint`е когда вы „заливаете“ какое нибудь пространство одним цветом.
Можите сами проверить низкую ефиктивность рекурсии. Создайте новый рисунок с большим разрешением и залейте его одим цветом. Быстро залили? А теперь нарисуйте на нем сложный лабиринтно-образный обьект так, что его площадь будет хотя бы половыину от всего размера но чтоб у него было как можно меньше ровных линий и много муссора — разных пиксилей от, (спрея например), и тогда вам покажеться, что MS Paint тормозит при заливки более меньшой площади.
[off]P.S.
На самом деле действий для решения базовой (фундаментальной) проблемы может быцть более одного.[/off]
- жена бэтмэна
 - ГУРУ
 - Сообщения: 5004
 - Зарегистрирован: Ср окт 25, 2006 11:29
 - Откуда: только из душа
 
- жена бэтмэна
 - ГУРУ
 - Сообщения: 5004
 - Зарегистрирован: Ср окт 25, 2006 11:29
 - Откуда: только из душа
 
- Goldenerblitz
 - ГУРУ
 - Сообщения: 7271
 - Зарегистрирован: Чт июл 06, 2006 15:01
 - Откуда: Geneva
 - Контактная информация:
 
