Чему научитесь
- Сначала разбирать маленькие примеры, а потом писать код
- Использовать чётность, дополнение и периодичность
- Решать обратным ходом, когда прямой процесс сложнее
- Обосновывать найденную закономерность, а не угадывать её
Как устроено занятие
Сначала разбор с примерами и короткими проверками понимания — они нужны, чтобы поймать непонятое сразу, а не через три темы.
Дальше 15 задач лестницей: разминка, основа, со звёздочкой. Занятие засчитывается, когда решено 8 — остальные не пропадают и учитываются отдельно.
После занятия — вторая часть, ещё 15 задач на те же приёмы в новых сюжетах.
Сколько это займёт
Примерно час-полтора вместе с задачами. Сроков нет: можно закрыть вкладку и вернуться когда удобно — прогресс сохранится.
Сначала примеры, потом код
В нестандартной задаче код часто занимает три строки, а главная работа происходит до него. Посчитайте ответ для нескольких маленьких входов и спросите: что меняется, а что остаётся неизменным?
Наблюдение становится решением только после объяснения, почему оно работает для любого допустимого входа.
Дополнение
Если известно целое и почти все части, последнюю часть проще найти вычитанием. Например, сумма чисел от 1 до равна : из неё можно вычесть все записанные числа и получить пропущенное.
Что не меняется
За ход к двум числам прибавляют по единице. Как меняется чётность общей суммы?
Чётность, период и инвариант
Чётность оставляет только два состояния. Период означает, что после нескольких шагов состояния повторяются — тогда нужен остаток от деления. Инвариант — свойство, которое разрешённые ходы не меняют.
Если цель имеет другое значение инварианта, добраться до неё невозможно — сколько бы ходов ни делать.
Иногда выгоднее идти с конца
Прямой ход может разветвляться: прибавить или умножить? В обратную сторону выбор иногда почти однозначен: нечётное число нельзя получить удвоением, а чётное выгодно поделить.
После получения идеи всё равно проверьте самые маленькие значения и границу, где правило меняется.
Практика: найти идею
Сначала пять разминочных задач, затем семь основных и три необязательные задачи со звёздочкой. Проверяйте решение на примере до отправки.
Задачи со звёздочкой
Эти три задачи не нужны для зачёта. Они проверяют, получается ли собрать несколько простых приёмов без готового шаблона.
Наблюдение и доказательство
Почему при одновременном прибавлении единицы к двум числам чётность общей суммы не меняется? Объясните одним-двумя предложениями.