На этом уроке мы рассмотрим два основных способа решения комбинаторных задач: Первый способ - когда известно количество объектов - вложенные циклы. Второй способ - любое количество объектов - использование рекурсии.
Чему научился:
1) Закрепил навыки работы с рекурсией; 2) Познакомился с интересным вариантом вызова рекурсивной функции в цикле; 3) Поработал с оптимизацией алгоритма, перенос локальных переменных в область определения класса хоть и не имеет логической полезности, но дает прирост в производительности.
Что было сложным:
Материал хорошо объясняется, сложностей не было.
Комментарии:
Хороший урок, мне понравился, понятны плюсы и минусы рекурсии. Тест N=5 не прошел по тайм-ауту, поэтому, как и предложил Евгений Витольдович, посчитал в Visual Studio (второй скриншот) количество счастливых билетов при N=5 и указал в коде полученное значение.
Научился: Познакомился с практическим применением рекурсии. Ближе узнал что такое комбинаторика и какие способы есть для отптимального решения разных комбинаторных задач. Трудности: Нисразу понял алгоритм через рекурсию как мы проходим по цифрмам и суммируем их. Отладка все таки сильная вещь.
Научился: Делать программку, которая считает, сколько счастливых билетиков будет при N-значном числе. Урок классный!!! Спасибо : )
Начала читать эту книжку по комбинаторике, мне она уже понравилась: всё очень интересно написано : )