Pull to refresh

Как выполнять календарные вычисления в голове

Привет, Хабр!


Задумывались ли вы, в какой день недели произошло то или иное событие?
Знали ли, что 9\11 случилось во вторник, а Ю.А. Гагарин покорил космос в среду?
Хотели бы уметь за пару минут высчитывать день недели любой даты?


Предлагаю вашему вниманию перевод статьи How to Perform Calendar Calculations in Your Head автора Jørgen Veisdal, в которой он за научит вас этому за полчаса.


image


Так называемый календарный савант- это тот, кто, несмотря на свою умственную отсталость (как правило, аутизм), может назвать день недели конкретной даты или наоборот за несколько секунд или даже за десятую долю секунды (Кеннеди&Сквайр, 2007). Примечание: Даниэль П. Кеннеди и Ларри Р Сквайр- ученые, совместно написавшие статью An analysis of calendar performance in two autistic calendar savants .


В приведенном ниже ролике гениальный савант Ким Пик, вдохновитель фильма Человек дождя, делает это, отвечая на вопросы аудитории:



Да, это впечатляет, но, на самом деле, календарные расчеты очень просты в выполнении и могут быть изучены менее чем за 30 минут. Эта короткая статья научит вас, как.


Какой день недели был 13 января 1989 года?


Мой день рождения. Я родился на две недели позже. Вот как вычислить, в какой день недели это было:


Шаг 1. Рассчитайте годовой код Y


Первым из пяти шагов нашего процесса является вычисление кода года, представленного буквой Y.


Это делается следующим образом:

Возьмите две последние цифры года, разделите на 4, возьмите только целую часть. Моему году рождения соответствует 89 / 4 = 22. Добавьте получившееся число к последним двум цифрам года, 22 + 89 = 111


Для дат в 1700-х годах, добавьте 4.
Для дат в 1800-х годах добавьте 2.
Для дат в 1900-х годах добавьте 0.
Для дат в 2000-х годах добавьте 6.
Для дат в 2100-х годах добавьте 4.


Итак, для даты 13 января 1989 года мы получаем код года Y = 111.


Шаг 2. Найдите код месяца M


Второй шаг наших вычислений — нахождение кода месяца M. Это легко, просто найдите код в таблице ниже (а лучше запомните).


Код месяца

Январь 1
Февраль 4
Март 4
Апрель 0
Май 2
Июнь 5
Июль 0
Август 3
Сентябрь 6
Октябрь 1
Ноябрь 4
Декабрь 6


Если год, для которого вы ищите код, является / был високосным, вычитайте 1 из кода для января и февраля, так вы получите, что январь = 0 и февраль = 3.


Как известно, високосные годы происходят раз в четыре года. Но есть ещё вековые годы, такие как 1900, 2000 и 2100, которые являются високосными, если они делятся без остатка на 400.
Для даты 13 января 1989 года мы получаем код месяца M = 1.


Шаг 3. Найдите код дня D


Третий шаг нашего пятиэтапных вычислений — нахождение кода дня D. Это ещё проще, чем найти код месяца, так как это номер самой даты. Для 13 января 1989 года это число равно D = 13.


Шаг 4. Найдите сумму чисел Y + M + D


Четвертым шагом вычислений является сложение трех чисел, которые мы нашли. Для наших трех чисел сумма равна 111 + 1 + 13 = 125.


Шаг 5. Найдите день недели


Заключительным этапом наших расчетов является вычисление остатка от операции 125 mod 7 по модулю. Мы знаем, что 7 × 17 равно 119, отсюда остается остаток, равный 6.


Остаток дня

Суббота 0
Воскресенье 1
Понедельник 2
Вторник 3
Среда 4
Четверг 5
Пятница 6


13 января 1989 года была пятница. Да, я родился в пятницу 13-го.
Эта статья является частью серии рассказов на математические темы, опубликованных в еженедельном издании Cantor`s Paradise. Спасибо за чтение!
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.