TwiddleLab / Математика / Счёт и закономерности
Арифметика часов: остатки
Что ты узнаешь
- На циферблате с n делениями важен только остаток от деления на n: 100 часов на 12-часовых часах сдвигают стрелку на 4.
- Пишут 100 mod 12 = 4 и говорят, что 15 и 3 сравнимы по модулю 12. В Python: 100 % 12.
- Дни недели работают по модулю 7, шифр Цезаря по модулю 26.
- Прыжки по 5 по кругу из 12 обходят каждое деление; прыжки по 4 застревают на 0, 4, 8.
Как идёт урок
Сейчас 21:00. Твоё игровое событие начнётся через 100 часов.
Который будет час? Передвинь часовую стрелку на свою ставку.
Заведи часы: ровно 15 часов, потом ровно 30.
Крути стрелку по часовой. Счётчик держит итог.
Теперь главное: 100 часов от 21:00.
Заводи целые круги, пока можно, потом сдвинь остаток.
Это модульная арифметика.
Раздели и оставь только остаток: 100 = 8 × 12 + 4.
Пишут 100 mod 12 = 4 и 15 ≡ 3 (mod 12): одно и то же место на циферблате. В Python это 100 % 12.
Сложение и умножение по-прежнему работают: просто оборачивай в конце.
Поставь каждое число на его деление циферблата от 0 до 11.
Тяни шарики. Круги не считаются.
Прыгай по циферблату по 5 делений, начиная с 0.
Нажимай, куда приземляется каждый прыжок. Потом циферблат закончит узор.
Игра: какой будет день?
Сегодня понедельник. Нажми на день для каждого прыжка. Недели оборачиваются по модулю 7.
Шифр Цезаря сдвигает каждую букву по кругу алфавита.
Поверни внутреннее кольцо на свой сдвиг, выбери слово, потом закрепи ключ.
Что напечатает эта строка Python?
Четыре 12 дают 48, а 50 - 48 = 2, значит, 50 % 12 это 2.
Остатки оборачивают числа по кругу.
Пришло сообщение, закрытое твоим ключом. Поверни кольцо обратно, чтобы прочитать.
Предыдущий урок: Принцип Дирихле · Следующий урок: Проект: сколько паролей? · Часть курса: Счёт и закономерности
Уроки интерактивные и работают на JavaScript. Включи его, чтобы играть.