Slider

Задача №11. Использование рекурсивных алгоритмов.

Автор материалов - Лада Борисовна Есакова.

Рекурсия - это способ определения объектов (понятий), при котором определение объекта строится, опираясь на само понятие объекта.

Для того, чтобы задать рекурсию, необходимо описать:

- условие остановки рекурсии (базовый случай);

- рекуррентную формулу.

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

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

Классическим примером рекурсивного алгоритма является описание вычисления факториала:

где F(n-1)=(n-1)!

Рекурсивные алгоритмы вычисления одной функции

Пример 1.

Ал­го­ритм вы­чис­ле­ния зна­че­ния функ­ции F(n), где n – на­ту­раль­ное число, задан сле­ду­ю­щи­ми ре­кур­рент­ны­ми со­от­но­ше­ни­я­ми:

F(n) = 1 при n = 1;

F(n) = F(n − 1) · n при n ≥ 2.

Чему равно зна­че­ние функ­ции F(6)?

В от­ве­те за­пи­ши­те толь­ко на­ту­раль­ное число.

Решение:

По­сле­до­ва­тель­но на­йдём зна­че­ния функции от базового случая F(1) до искомого значения F(6):

F(1) = 1

F(2) = 2

F(3) = 6

F(4) = 24

F(5) = 120

F(6) = 720

Ответ:720

Рекурсивные алгоритмы вычисления нескольких функций

Пример 2.

Алгоритм вычисления значений функций F(n) и G(n), где n – натуральное число, задан следующими соотношениями:

F(1) = 1; G(1) = 1;

F(n) = F(n–1) – G(n–1),

G(n) = F(n–1) + 2*G(n–1), при n >=2

Чему равно значение величины F(5)/G(5)? В ответе запишите только целое число.

Решение:

По­сле­до­ва­тель­но на­йдём зна­че­ния функций от базового случая F(1), G(1) до искомых значений F(5), G(5):

F(1) = 1; G(1) = 1;

F(2) = F(1) – G(1) = 1 – 1 = 0;

G(2) = F(1) + 2*G(1) = 1+2 = 3;

F(3) = F(2) – G(2) = 0 – 3 = -3;

G(3) = F(2) + 2*G(2) = 0+6 = 6;

F(4) = F(3) – G(3) = -3 – 6 = -9 ;

G(4) = F(3) + 2*G(3) = -3+12 = 9;

F(5) = F(4) – G(4) = -9 – 9 = -18;

G(5) = F(4) + 2*G(4) = -9+18 = 9.

F(5)/G(5) = -18/9 = -2

Ответ:-2

Рекурсивные алгоритмы выполнения процедур

Пример 3.

Ниже на пяти язы­ках про­грам­ми­ро­ва­ния за­пи­сан ре­кур­сив­ный ал­го­ритм F.

 

Бей­сик

Python

SUB F(n)

PRINT n

IF n < 5 THEN

F(n + 1)

F(n + 3)

END IF

END SUB

def F(n):

print(n)

if n < 5:

F(n + 1)

F(n + 3)

Пас­каль

Ал­го­рит­ми­че­ский язык

procedure F(n: integer);

begin

writeln(n);

if n < 5 then

begin

F(n + 1);

F(n + 3)

end

end

алг F(цел n)

нач

вывод n, нс

если n < 5 то

F(n + 1)

F(n + 3)

все

кон

Си

void F(int n)

{

printf("%d\n", n);

if (n < 5) {

F(n + 1);

F(n + 3);

}

}

Чему равна сумма всех чисел, на­пе­ча­тан­ных на экра­не при вы­пол­не­нии вы­зо­ва F(1)?

 

Решение:

Выпишем последовательно все действия, которые выполнят запускаемые процедуры:

F(1) выполнит следующие действия: Вывод числа 1, F(2), F(4)

F(2) выполнит следующие действия: Вывод числа 2, F(3), F(5)

F(4) выполнит следующие действия: Вывод числа 4, F(5), F(7)

F(3) выполнит следующие действия: Вывод числа 3, F(4), F(6)

F(5) выполнит следующие действия: Вывод числа 5

F(5) выполнит следующие действия: Вывод числа 5

F(7) выполнит следующие действия: Вывод числа 7

F(4) выполнит следующие действия: Вывод числа 4, F(5), F(7)

F(6) выполнит следующие действия: Вывод числа 6

F(5) выполнит следующие действия: Вывод числа 5

F(7) выполнит следующие действия: Вывод числа 7

Просуммируем все числа, выведенные на экран: 1+2+4+3+5+5+7+4+6+5+7 = 49

Ответ: 49

Пример 4.

Ниже на пяти язы­ках про­грам­ми­ро­ва­ния за­пи­са­ны две ре­кур­сив­ные функ­ции (процеду­ры): F и G.

1

Сколь­ко сим­во­лов «звёздоч­ка» будет на­пе­ча­та­но на экра­не при вы­пол­не­нии вы­зо­ва F(11)?

 

Решение:

Выпишем последовательно все действия, которые выполнят запускаемые процедуры:

F(11)  G(10) * F(7) G(6) * F(3) G(2) * F(-1)

Всего на экране будет напечатано 3 «звездочки».

Ответ: 3

Пример 7.36.

Дан рекурсивный алгоритм:

procedure F(n: integer);

begin

 writeln('*');

 if n > 0 then begin

   F(n-3);

   F(n-2);

   F(n div 2);

   F(n div 2);

 end

end;

Сколько символов "звездочка" будет напечатано на экране при выполнении вызова F(6)?

Решение:

Для наглядности изобразим схему работы алгоритма в виде дерева:

2

Причем, распишем до конца каждое значение F(n)  только один раз. Например, расписав один раз F(1), мы видим, что она напечатает в результате 5 звездочек. Т.е. F(1) = 5.

Проанализировав дерево, видим, что

F(0) = 1

F(2) = 3 + 2*F(1) = 13

F(3) = 1 + F(0) + 3*F(1) = 1 + 1 + 15 = 17

F(4) = 1 + F(1) + 3*F(2) = 1 + 5 + 3*13 = 45

F(6) = 1 + 3*F(3) + F(4) = 1 + 3*17 + 45 = 46 + 51 = 97

Ответ: 97

 

Интенсивная подготовка

Бесплатные пробные ЕГЭ

Расписание курсов

Звоните нам: 8 (800) 775-06-82 (бесплатный звонок по России)
                       +7 (495) 984-09-27 (бесплатный звонок по Москве)

Или нажмите на кнопку «Узнать больше», чтобы заполнить контактную форму. Мы обязательно Вам перезвоним.

БЕСПЛАТНЫЙ РЕПЕТИЦИОННЫЙ ЕГЭ ОНЛАЙН

Типы подготовки:
Сказать спасибо
РЕКОМЕНДУЕМ:
ege-tv

Полный онлайн-курс подготовки к ЕГЭ по математике. Структурировано. Четко. Без воды. Сдай ЕГЭ на 100 баллов!

Смотреть

Для нормального функционирования и Вашего удобства, сайт использует файлы cookies. Это совершенно обычная практика.Продолжая использовать портал, Вы соглашаетесь с нашей Политикой конфиденциальности.

Позвоните мне

Все поля обязательны для заполнения

Отправить

Премиум

Вся часть 2 на ЕГЭ по математике, от задачи 13 до задачи 19. То, о чем не рассказывают даже ваши репетиторы. Все приемы решения задач части 2. Оформление задач на экзамене. Десятки реальных задач ЕГЭ, от простых до самых сложных.

Видеокурс «Премиум» состоит из 7 курсов  для освоения части 2 ЕГЭ по математике (задачи 13-19). Длительность каждого курса - от 3,5 до 4,5 часов.

  1. Уравнения (задача 13)
  2. Стереометрия (задача 14)
  3. Неравенства (задача 15)
  4. Геометрия (задача 16)
  5. Финансовая математика (задача 17)
  6. Параметры (задача 18)
  7. Нестандартная задача на числа и их свойства (задача 19).

Здесь то, чего нет в учебниках. Чего вам не расскажут в школе. Приемы, методы и секреты решения задач части 2.

Каждая тема разобрана с нуля. Десятки специально подобранных задач, каждая из которых помогает понять «подводные камни» и хитрости решения.  Автор видеокурса Премиум - репетитор-профессионал Анна Малкова.

Получи пятерку

Видеокурс «Получи пятерку» включает все темы, необходимые для успешной сдачи ЕГЭ по математике на 60-65 баллов. Полностью все задачи 1-13 Профильного ЕГЭ по математике. Подходит также для сдачи Базового ЕГЭ по математике. Если вы хотите сдать ЕГЭ на 90-100 баллов, вам надо решать часть 1 за 30 минут и без ошибок!

Курс подготовки к ЕГЭ для 10-11 класса, а также для преподавателей. Все необходимое, чтобы решить часть 1 ЕГЭ по математике (первые 12 задач) и задачу 13 (тригонометрия). А это более 70 баллов на ЕГЭ, и без них не обойтись ни стобалльнику, ни гуманитарию.

Вся необходимая теория. Быстрые способы решения, ловушки и секреты ЕГЭ. Разобраны все актуальные задания части 1 из Банка заданий ФИПИ. Курс полностью соответствует требованиям ЕГЭ-2018.

Курс содержит 5 больших тем, по 2,5 часа каждая. Каждая тема дается с нуля, просто и понятно.

Сотни заданий ЕГЭ. Текстовые задачи и теория вероятностей. Простые и легко запоминаемые алгоритмы решения задач. Геометрия. Теория, справочный материал, разбор всех типов заданий ЕГЭ. Стереометрия. Хитрые приемы решения, полезные шпаргалки, развитие пространственного воображения. Тригонометрия с нуля - до задачи 13. Понимание вместо зубрежки. Наглядное объяснение сложных понятий. Алгебра. Корни, степени и логарифмы, функция и производная. База для решения сложных задач 2 части ЕГЭ.

Сразу после оплаты вы получите ссылки на скачивание видеокурсов и уникальные ключи к ним.

Задачи комплекта «Математические тренинги - 2019» непростые. В каждой – интересные хитрости, «подводные камни», полезные секреты.

Варианты составлены так, чтобы охватить все возможные сложные задачи, как первой, так и второй части ЕГЭ по математике.

Как пользоваться?

  1. Не надо сразу просматривать задачи (и решения) всех вариантов. Такое читерство вам только помешает. Берите по одному! Задачи решайте по однойи старайтесь довести до ответа.
  2. Если почти ничего не получилось – начинать надо не с решения вариантов, а с изучения математики. Вам помогут книга для подготовки к ЕГЭи Годовой Онлайн-курс.
  3. Если вы правильно решили из первого варианта Маттренингов 5-7 задач – значит, знаний не хватает. Смотри пункт 1: Книгаи Годовой Онлайн-курс!
  4. Обязательно разберите правильные решения. Посмотрите видеоразбор – в нем тоже много полезного.
  5. Можно решать самостоятельно или вместе с друзьями. Или всем классом. А потом смотреть видеоразбор варианта.

Стоимость комплекта «Математические тренинги – 2019» - всего 1100 рублей. За 5 вариантов с решениями и видеоразбором каждого.