Русский
Алгоритм судного дня Конвея: как определить день недели для любой даты в уме
Каждую дату можно однозначно связать с днём недели. Но как это делать без календаря?
В 1973 году математик Джон Конвей придумал алгоритм, который позволяет в уме определить, какой день недели приходится на любую дату — хоть 4 октября 1582 года, хоть ваш следующий день рождения.
Что такое судный день в алгоритме Конвея
Принцип основан на том, что в каждом году есть «опорные даты», которые всегда попадают на один и тот же день недели — он и называется судным днём (Doomsday) для этого года.
Шаг 1: Запомните опорные даты года (Doomsday-даты)
Вот простый список для невисокосных лет:
– 4 апреля → 4/4
– 6 июня → 6/6
– 8 августа → 8/8
– 10 октября → 10/10
– 12 декабря → 12/12
– ~~9 сентября~~ 5 сентября → 9/5
– ~~5 мая~~ 9 мая → 5/9
– 7/11 и 11/7
– февраль: 28 (или 29 — в високосный)
Все эти даты в одном году попадают на один и тот же день недели — его и нужно найти.
Шаг 2: Найдите судный день для конкретного года
Алгоритм для двух последних цифр года (yy):
- Возьмите последние две цифры года → обозначим A
- Разделите A на 12 → целая часть = B
- Найдите остаток от деления A на 12 → C
- Разделите C на 4 → целая часть = D
- Сложите: B + C + D
- Добавьте базу века (смотри ниже)
- Возьмите результат по модулю 7 → это номер дня недели (0 = воскресенье, 1 = понедельник, …, 6 = суббота)
База века:
– 1900–1999 → вторник (2)
– 2000–2099 → вторник (2)
– 2100–2199 → воскресенье (0)
– 1800–1899 → пятница (5)
Шаг 3: Найдите ближайшую опорную дату и посчитайте сдвиг
Пример: алгоритм судного дня для 10 сентября 2025 года
Год: 2025
Последние две цифры: A = 25
- A = 25
- B = 25 ÷ 12 = 2
- C = 25 mod 12 = 1
- D = 1 ÷ 4 = 0
- B + C + D = 2 + 1 + 0 = 3
- База века (2000–2099) = 2
- 3 + 2 = 5 → 5 mod 7 = 5
Значит, судный день 2025 года — пятница.
Ближайшая опорная дата к 10 сентября — это 5 сентября, и она, как мы знаем, выпадает на пятницу.
10 сентября — это на 5 дней позже, значит:
– 5 сентября → пятница
– 6 → суббота
– 7 → воскресенье
– 8 → понедельник
– 9 → вторник
– 10 → среда
Ответ: 10 сентября 2025 года — это среда.
Как быстро освоить алгоритм судного дня
Алгоритм кажется длинным, но запоминается быстро. После пары тренировок вы будете считать такие вещи за 10–15 секунд — и производить впечатление человека, у которого в голове встроенный календарь.
