Урок:

Динамічне програмування: способи реалізації, рекурсія

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

Цілі:

  • навчальна: ознайомити з технічними прийомами реалізації динамічного програмування;

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

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

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

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

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

2

3

4

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

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

5

Динамічне програмування як метод розв'язування задач

Ознайомитись з описом методу та підходами до його реалізації (документ)

  1. Вивчити означення "динамічного програмування", "рекурсія".

  2. Вивчити поняття "гранична умова", "база", крок рекурсії.

  3. Вміти пояснювати три підходи до реалізації динамічного програмування: рекурсія, мемоїзація, табуляція.

  4. Ознайомитись з прикладами розв'язання задачі трьома підходами.

6

Задача "Числа Фібоначчі"

Описати рекурсивну функцію Fib(N) цілого типу, яка обчислює N-й елемент послідовності чисел Фібоначчі (N - ціле число):F1 = F2 = 1, FN = FN-2 + FN-1, N = 3, 4, ... . 

  1. Написати програмний код у вигляді рекурсивної функції, рекурсії з запам'ятовуванням, у вигляді ітерацій.

  2. Надіслати скріншоти розв'язків

7

Задача "Сума цифр"

Скласти рекурсивну функцію S(N), яка повертає суму цифр у заданому натуральному числі N (N>=0)

  1. Написати програмний код у вигляді рекурсивної функції, рекурсії з запам'ятовуванням, у вигляді ітерацій.

  2. Надіслати скріншоти розв'язків

8

Задача. "Створи паліндром".

Паліндром – це послідовність символів, яка зліва-направо та справа-наліво пишеться однаково. Наприклад, «АБА» або «АББ ББА». 

Задано послідовність символів (рядок) х. Яку мінімальну кількість символів потрібно вилучити з х, щоб отримати паліндром?

Приклад. Вхідні дані «і розморозь зором зорі». Відповідь: 3 (пропуски між словами).

х – рядок символів, який можна подати у вигляді LаR, де L – перший символ зліва, R – останній символ рядка х, а – підрядок, решта символів рядка (між першим та останнім, можливо – порожній). S(x) – функціz, що обчислює мінімальну кількість символів, які потрібно вилучити з рядка х, щоб решта символів утворювали паліндром.

Для розв'язання скористатись функціями для типу string

  1. Написати програмний код у вигляді рекурсивної функції.

  2. Надіслати скріншоти розв'язків

9

Стандартна бібліотека шаблонів (STL)

Прочитати про призначення бібліотеки STL.

Контейнери STL

Послідовний контейнер vector

Реалізація лінійних масивів

Клас vector (або просто «вектор») — це динамічний масив, здатний збільшуватися в міру необхідності для утримання всіх своїх елементів. Клас vector забезпечує довільний доступ до своїх елементів через оператор індексації [], а також підтримує додавання і видалення елементів.

Прочитати як описуються вектори, що презентують лінійні масиви. Ознайомитись з прикладами кодів, що показують використання vector. Користуватись вказаними прикладами можна як "словничком" програмного коду. (Документ)

Задача "Біномінальні коефіцієнти"

  1. Умова задачі (vpn)

  2. Розв'язати задачу за допомогою рекурсії з запам'ятовуванням. Для запам'ятовування використати vector (двовимірий масив):
    vector< vector<unsigned long long> > FibMemo;
    FibMemo.assign(N+1, vector<unsigned long long>(M+1, 0));

    Кількість способів - це комбінаторна формула:

    Під час розв'язування на С++ правильно вибирати тип результату

  3. Надіслати скріншоти програми та результатів тестування програми на сервері.

10

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

  1. Умова задачі

  2. Розв'язати задачу за допомогою рекурсії з запам'ятовуванням.
    Підказка: потрібно правильно вибрати підхід до реалізації ДП
    Під час розв'язування на С++ правильно вибирати тип результату

  3. Надіслати скріншоти програми та результатів тестування програми на сервері.

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

Сподобався:

0

Так: 0

Ні: 0

Зрозумілий:

0

Так: 0

Ні: 0

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

0

Ні: 0

Так: 0

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

9.1 Динамічне програмування

9.1 Динамічне програмування

128

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

50 грн

Мультимедіа: проєктування відеоконтенту

Мультимедіа: проєктування відеоконтенту

134

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

33 грн

Мультимедіа: скринкасти

Мультимедіа: скринкасти

90

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

33 грн

Як розпізнати фейки?

Як розпізнати фейки?

209

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

33 грн

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

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

169

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

33 грн

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

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

149

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

33 грн

Схожі уроки

Поняття про операційні системи, мови програмування. Прикладне програмне забезпечення комп’ютера та його використання для вирішення задач

Поняття про операційні системи, мови програмування. Прикладне програмне забезпечення комп’ютера та його використання для вирішення задач

208

Аватар профіля Шевченко Наталія Володимирівна
ІКТ
дорослі

Пристрої для роботи з інформацією

Пристрої для роботи з інформацією

53

Аватар профіля Стасишин Світлана Йосифівна
ІКТ
2 клас

Лінії зв’язку та їх характеристики

Лінії зв’язку та їх характеристики

249

Аватар профіля Халимівська Ірина Анатоліївна
ІКТ
III курс

Основи мережевих систем. Адресація в інтернеті

Основи мережевих систем. Адресація в інтернеті

173

Аватар профіля Халимівська Ірина Анатоліївна
ІКТ
I курс

Класифікація програмного забезпечення

Класифікація програмного забезпечення

101

Аватар профіля Халимівська Ірина Анатоліївна
ІКТ
I курс

Он-лайн сервіси для роботи з текстовими і графічними файлами. Небезпеки пов'язані з використанням он-лайн сервісів.

Он-лайн сервіси для роботи з текстовими і графічними файлами. Небезпеки пов'язані з використанням он-лайн сервісів.

88

Аватар профіля Усиченко Олена Вікторівна
ІКТ
I—II курси