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

Алгоритм (метод) судного дня ( англ. 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 в магазине „семь-одиннадцать“» .

Дни недели, приходящиеся на 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
Июнь 06.06
Июль 11.07 Seven-eleven
Август 08.08
Сентябрь 05.09 Nine to five
Октябрь 10.10
Ноябрь 07.11 Seven-eleven
Декабрь 12.12

Примечания

  1. « 7-Eleven » — название международной торговой сети японских магазинов.
  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

Ссылки

  • (недоступная ссылка)
  • (недоступная ссылка)
Источник —

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