Алгоритм Судного дня

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Алгоритм (метод) судного дня (англ. doomsday algorithm) — алгоритм, позволяющий в уме посчитать, какой день недели приходится на выбранную дату. Разработан около 1970 года британским математиком Джоном Конвеем. Применим для дат по григорианскому календарю, но существуют модификации для юлианского календаря.

Алгоритм опирается на так называемый «судный день» (англ. doomsday). «Судным» назван последний день февраля — 28 февраля невисокосного года или 29 февраля високосного года. Зная день недели, приходящийся на последний день февраля выбранного года, и пользуясь алгоритмом, можно узнать день недели любой даты выбранного года.

Перед использованием алгоритма требуется узнать, какой день недели приходится на последний день февраля выбранного года. В 2024 году последний день февраля — четверг. Если следующий год невисокосный, то день недели последнего дня февраля следующего года будет смещён от дня недели последнего дня февраля текущего года на один день вперёд; если високосный, то — на два дня вперёд.

Опишем используемые алгоритмом закономерности.

Дни недели, приходящиеся на 4 апреля (04.04), 9 мая (09.05), 6 июня (06.06), 11 июля (11.07), 8 августа (08.08), 5 сентября (05.09), 10 октября (10.10), 7 ноября (07.11), 12 декабря (12.12), всегда совпадают с днём недели, приходящимся на последний день февраля. Например, в 2024 году последний день февраля — четверг и 4 апреля — тоже четверг. Для запоминания дат 04.04, 06.06, 08.08, 10.10, 12.12 можно заметить, что для чётных месяцев, начиная с апреля (4-го месяца), день месяца совпадает с номером месяца. Для запоминания пары 09.05, 05.09 и пары 07.11, 11.07 можно заметить, что на первую дату из пары приходится праздник (9 мая (09.05) — День Победы; 7 ноября (07.11) — годовщина Октябрьской революции), а вторая дата из пары получается перестановкой дня месяца и номер месяца. В английском языке известна запоминалка: «I work from 9 to 5 at the 7-11» — «Я работаю с 9 до 5 в магазине „семь-одиннадцать“»[1].

Дни недели, приходящиеся на 3 января невисокосного года и на 4 января високосного года, совпадают с днём недели, приходящимся на последний день февраля (три невисокосных года — третье января, в четвёртом (високосном) году — четвёртое января).

Дни недели, приходящиеся на 7 марта (07.03), 14 марта (14.03), 21 марта (21.03) и 28 марта (28.03), совпадают с днём недели, приходящимся на последний день февраля. Заметим, что дни марта (7 , 14, 21, 28) кратны семи.

Далее перечислены месяцы, для которых при совпадении дней месяцев совпадают и дни недели:

  • январь високосных годов, апрель, июль;
  • январь и октябрь невисокосных годов;
  • февраль невисокосных годов, март и ноябрь;
  • февраль и август високосных годов;
  • сентябрь и декабрь.

Например, совпадают дни недели для 4 апреля и 4 июля (в 2021 году — воскресенье, в 2022 году — понедельник, в 2023 году — вторник), для 8 марта и 8 ноября (в 2021 году — понедельник), для 1 сентября и 1 декабря (в 2021 году — среда).

Итого:

Таблица для запоминания
Месяц Последний день февраля В високосных годах Запоминалка
Январь 03.01 04.01 Три года 03, в четвёртом — 04
Февраль 28.02 29.02 Последний
Март «00».03 «Нулевой» и все, делимые на 7
Апрель 04.04
Май 09.05 Nine to five[2]; День Победы
Июнь 06.06
Июль 11.07 Seven-eleven[1]
Август 08.08
Сентябрь 05.09 Nine to five[2]
Октябрь 10.10
Ноябрь 07.11 Seven-eleven[1]; Октябрьская революция
Декабрь 12.12

Примечания

[править | править код]
  1. 1 2 3 «7-Eleven» — название международной торговой сети японских магазинов.
  2. 1 2 В английском языке — разговорное название стандартного восьмичасового рабочего дня: «с девяти [утра] до пяти [вечера]».

Литература

[править | править код]
  • John Conway, Elwyn Berlekamp, Richard Guy: Winning Ways For Your Mathematical Plays. Vol. 2: Games in Particular. Academic Press, London 1982, 795—797. ISBN 0-120-91102-7