Сьогодні о 18:00
Вебінар:
«
Літо без стресу: психоемоційна підтримка дітей з ООП у період канікул
»
Взяти участь Всі події
Урок:

Рекурсія із запам'ятовуванням

10.05.2023
0 0
Опис уроку (учням цей опис не показується):

Цілі:

  • навчальна: рекурсивні функції

  • розвивальна: розвивати логічне мислення; формувати вміння діяти за інструкцією, планувати свою діяльність, аналізувати i робити висновки;

  • виховна: виховувати інформаційну культуру учнів, уважність, акуратність, дисциплінованість.

Вміст уроку:
1
2
3
4
5
6
7
8
9
10

Урок не містить жодного завдання. Додайте завдання.

Щоб додати завдання, оберіть категорію завдання на панелі запитань.

2

03015ok4-35d1-940x543.png

3

4

5

Проблеми використання рекурсивних функцій

Задача. Обчислити n-ий елемент послідовності Фібоначчі

Математичний запис

програмний код

0402wthf-2810-441x70.png

def F(n):

____if n==0 or n==1:

___________return 1;

_______else:

________return f(n-1) + f(n-2)

Під час обчислення значення F(6) будуть викликані функції обчислення F(4) та F(5). У свою чергу, для обчислення F(4) будуть викликані F(2) та F(3), а для Fib(5) – пара F(3) та F(4). Можна намалювати «дерево рекурсивних викликів»:

0402xs1i-2505-483x215.png

Як видно з малюнка, що, наприклад, F(3) обчислюється три рази.

Якщо розглянути обчислення при великих N, то повторних обчислень буде дуже багато. Це і є основний недолік рекурсії - повторні обчислення тих самих значень. Крім того, з рекурсивними функціями пов'язана одна серйозна проблема: дерево рекурсивних викликів може виявитися нескінченним і комп'ютер «зависне».

Способи вирішення проблеми "повторних обчислень" та "нескінченності дерева викликів":

  • перетворити рекурсивну функцію на циклічний алгоритм;

  • застосувати метод динамічного програмування (масиви + циклічний алгоритм)

  • застосувати рекурсію із запам'ятовуванням (рекурсивна функція+масив)

6

Рекурсія із запам'ятовуванням

Рекурсивна функція

Рекурсивна функція з запам'ятовуванням

0402xs73-55cc-369x147.png

0402xs82-0c7d-392x193.png

mem - це список (з n+1 елемента), який зберігає проміжні результати;

остаточний результат знаходиться в комірці масиву mem[n]

Hекурсія із запам'ятовуванням складється з "обгортки" та "рекурсивної функції+масив":

0402xt32-556d-612x239.png

Послідовність Фібоначчі

Сума цифр числа

0402wthf-2810-441x70.png

0402xt75-6aed-414x69.png

0402xt3v-b674-307x231.png

0402xt85-18f8-315x231.png

7

Головна програма для рекурсії з запам'ятовуванням

0402y235-63a7-620x90.png

8

Задача "Фібоначчі"

Ознайомитись з умовою задачі на сайті EOlymp

Написати програму використовуючи "чисту" рекурсивну функцію, виконати тестування та надіслати результати тестування.

Написати програму використовуючи рекурсію із запам'ятовуванням, виконати тестування та надіслати результати тестування.

9

Пояснити, чому, на Вашу думку, результати тестування відрізняються для наведених вище двох підходів до розв'язання задачі?

10

Гімнастика для очей

03015ols-c201-940x507.png

Відеоінструкція (1 хв)

Рефлексія від 10 учнів

Сподобався:

0

Так: 9

Ні: 1

Зрозумілий:

0

Так: 9

Ні: 1

Потрібні роз'яснення:

0

Ні: 9

Так: 1

Рекомендуємо

Апаратні засоби для забезпечення електронного документообігу

Апаратні засоби для забезпечення електронного документообігу

169

Аватар профіля Костукевич Фелікс Віталійович
Інформатика
9 клас

33 грн

Практична робота "Український орнамент за допомогою Processing"

Практична робота "Український орнамент за допомогою Processing"

149

Аватар профіля Костукевич Фелікс Віталійович
Інформатика
11 клас

33 грн

Підготовка до олімпіад: ІІ етап Всеукраїнської олімпіади з інформатики (2024-2025) (1)

Підготовка до олімпіад: ІІ етап Всеукраїнської олімпіади з інформатики (2024-2025) (1)

2020

Аватар профіля Костукевич Фелікс Віталійович
Інформатика
8—11 клас

33 грн

Підготовка до олімпіад: ІІ етап Всеукраїнської олімпіади з інформатики (2024-2025) (2)

Підготовка до олімпіад: ІІ етап Всеукраїнської олімпіади з інформатики (2024-2025) (2)

1133

Аватар профіля Костукевич Фелікс Віталійович
Інформатика
змішані

33 грн

Еволюція комп’ютерних пристроїв

Еволюція комп’ютерних пристроїв

298

Аватар профіля Костукевич Фелікс Віталійович
Інформатика
8 клас

33 грн

Практична робота № 4. Створення бюлетеня з використанням шаблону та стилів оформлення

Практична робота № 4. Створення бюлетеня з використанням шаблону та стилів оформлення

242

Аватар профіля Костукевич Фелікс Віталійович
Інформатика
9 клас

33 грн

Схожі уроки

Впорядкування, пошук і фільтрування даних.

Впорядкування, пошук і фільтрування даних.

1289

Аватар профіля Вожга Ірина Леонідівна
Інформатика
9 клас

Створення й уведення структури таблиць. Поняття таблиці, поля, запису. Створення таблиць, означення полів і ключів у середовищі СКБД. Властивості полів, типи даних.

Створення й уведення структури таблиць. Поняття таблиці, поля, запису. Створення таблиць, означення полів і ключів у середовищі СКБД. Властивості полів, типи даних.

1108

Аватар профіля Савка-Ржематорська Оксана Василівна
Інформатика
9 клас

Цикли з передумовою у вкладених циклах

Цикли з передумовою у вкладених циклах

1344

Аватар профіля Вожга Ірина Леонідівна
Інформатика
6 клас

Налаштування часових параметрів аудіо- та відеоряду.

Налаштування часових параметрів аудіо- та відеоряду.

497

Аватар профіля Солодовнікова Катерина Олексіївна
Інформатика
8 клас

Елемент керування «кнопка». Поняття об’єкту та його властивостей і методів (на прикладі елементів екранної форми). Властивості і методи елементів керування.

Елемент керування «кнопка». Поняття об’єкту та його властивостей і методів (на прикладі елементів екранної форми). Властивості і методи елементів керування.

652

Аватар профіля Пилипенко Олена Володимирівна
Інформатика
8 клас

Елемент керування кнопка

Елемент керування кнопка

281

Аватар профіля Пилипенко Олена Володимирівна
Інформатика
8 клас