Видео недоступно для вставки
Лекция посвящена рекурсии и задаче под номером 3490.
Задача имеет уникальную четырехзначную нумерацию в текстовом файле и генераторе.
Решение задач может быть реализовано рекурсивным способом или поиском в ширину.
Рассматриваются разные классы задач из шестнадцатого номера.
Используется функция для решения задачи.
Функция должна возвращать целое число и учитывать возможные способы решения.
Функция должна возвращать 5 при n=0 и рекурсивно вызывать себя при n>0.
В теле основной программы вызывается функция для n=43.
Ответ совпадает с правильным значением 7971615.
Задача требует определить количество символов звездочки при вызове функции f22.
Используется заготовка для решения задачи.
Вводится переменная для подсчета символов и увеличивается счетчик при вызове функции.
Функция увеличивает счетчик на единицу при каждом вызове.
В конце функции счетчик увеличивается на количество звездочек.
Ответ совпадает с правильным значением 2500000.
Задача требует определить количество натуральных чисел из отрезка, кратных 11.
Функция возвращает значение в зависимости от условий.
Перебираются варианты от 1 до 1000 и проверяется кратность 11.
Функция возвращает значение в зависимости от условий.
Перебираются варианты от 1 до 1000 и проверяется кратность 11.
Ответ совпадает с правильным значением 91.
Задача требует определить количество натуральных значений n, для которых все цифры значения f не четные.
Используется тернарный оператор для упрощения кода.
Функция возвращает значение в зависимости от условий и кратности n.
Функция возвращает значение в зависимости от условий.
Перебираются варианты от 1 до 1000 и проверяется кратность 11.
Ответ совпадает с правильным значением.
Переборная задача: найти количество натуральных чисел от 1 до 1000 с нечетными цифрами.
Использование функции для проверки четности цифр числа.
Увеличение счетчика при обнаружении нечетного числа.
Проверка остатка от деления числа на 2.
Увеличение счетчика при нечетном остатке.
Перевод числа в строку для проверки количества символов.
Проверка правильности решения задачи.
Переход к следующей задаче.
Использование паттерна для решения задачи.
Проверка условий и возврат значений.
Перебор значений и вывод минимального значения.
Решение задачи в две строчки.
Сравнение с Python и Pascal.
Важность понимания процесса для корректного использования динамической типизации.
Использование массива для хранения значений.
Вычисление суммы предыдущих значений.
Проверка и вывод минимального значения.
Задача с произведением на 3 и 50.
Использование функции для проверки условий.
Условие для возврата значения при определенных значениях.
Обсуждение рекурсии и её недостатков.
Введение механизма мемоизации для оптимизации вычислений.
Пример использования мемоизации в Python.
Мемоизация позволяет избежать повторного вычисления одних и тех же данных.
Пример использования мемоизации для ускорения вычислений.
Важность понимания мемоизации для эффективного программирования.
Обсуждение задач, где мемоизация может значительно ускорить вычисления.
Пример задачи с косвенной рекурсией и мемоизацией.
Реализация функции с использованием мемоизации.
Проблемы с типами данных при использовании мемоизации.
Пример решения задачи с использованием больших целых чисел.
Важность правильного выбора типов данных для корректной работы программы.
Подведение итогов и обсуждение задач с мемоизацией.
Важность понимания и использования мемоизации для оптимизации вычислений.
Завершение урока и анонс следующего занятия.