Многие задачи астрономии и хронологии, связанные с
периодичностью, могут быть сформулированы в терминах теоретико-числовых
понятий. Возьмем простой пример: определение дня недели, который падает
на заданный день. Дни недели повторяются с периодом 7, поэтому вместо
обычных названий мы можем дать каждому дню номер:
воскресенье = 0,
понедельник = 1,
вторник = 2,
среда = 3,
четверг = 4,
пятница = 5,
суббота = 6.
Если мы это сделаем, то каждому целому числу соответствует день недели, а именно: день, определяемый его остатком по модулю 7.
Если бы мы имели благоприятнейшую ситуацию, при
которой количество дней в году делилось на 7, то все даты падали бы на
одни и те же дни ежегодно, и составление расписаний было бы гораздо
проще, а издатели календарей имели бы меньше работы. Однако количество
дней в году равно
365 ≡ 1 (mod 7),
за исключением високосных лет, в которых количество дней
366 ≡ 2 (mod 7).
Это показывает, что для обычного года номер W
дня недели заданной даты в следующем году увеличится на 1, например,
если в этом году 1 января — воскресенье, то в следующем году он будет
падать на понедельник. Это не слишком сложно, однако, эта простая схема
нарушается високосными годами. Это происходит каждый четвертый год,
тогда номер дня недели увеличивается на 2. Более того, возникает
дополнительная трудность из-за того, что добавочный день високосного
года прибавляется не в начале или конце года, а 29 февраля. Поэтому, для
удобства, в общей формуле для вычисления W, которую мы дадим ниже,
договоримся считать март — первым месяцем, апрель — вторым и т. д., при
этом январь будет одиннадцатым месяцем, а февраль — двенадцатым месяцем
предшествующего года.
Но на этом наши трудности не кончаются. В юлианском
календаре, введенном по указу Юлия Цезаря, было принято, что год точно
равен 365 1/4 дня, в соответствии с правилом високосного года. Однако
это не совсем правильно, так как астрономический год в действительности
равен 365,2422 дня.
Эта маленькая ошибка вызвала постепенный сдвиг
сезонов по отношению к календарю, например, в шестнадцатом веке день
весеннего равноденствия (первый день весны) пал на 11 марта вместо 21
марта, как это должно было быть.
Чтобы исправить положение, в 1582 году папа Григорий
XIII после долгих колебаний произвел реформу календаря в странах с
католическим вероисповеданием. В том году было опущено 10 дней, а
именно, пятницу 5 октября стали считать пятницей 15 октября. Более того,
для корректирования календаря были введены следующие григорианские
правила для високосных лет.
Годы столетий
1700, 1800, 1900, 2100, 2200, 2300…,
в которых количество столетий не делится на 4, не считаются високосными годами. Оставшиеся годы столетий
1600, 2000, 2400…
продолжают считаться високосными годами. Получается
очень хорошее приближение к правильной длине года, однако капельку
длиннее. Было предложено не считать годы 4000, 8000… високосными вопреки
григорианскому правилу; но так как этот вопрос еще открыт и не имеет
отношения к ближайшему будущему, то мы не будем это принимать в нашей
формуле.
Предположим теперь, что нам задана дата: d-й день в m-м месяце (где m определяется так, как было указано выше), в году, равном
N = c • 100 + Y, (8.2.1)
где с—количество столетий, а Y — номер года в столетии. Тогда можно доказать, что наш номер дня недели определяется при помощи сравнения
W ≡ d + [1/5 (13m -1)] + Y + [1/4 Y] + [1/4 c] — 2с (mod 7). (8.2.2)
Квадратные скобки, фигурирующие в этой формуле, были
введены в § 3 главы 4 для обозначения наибольшего целого числа, не
превосходящего числа, стоящего внутри этих скобок.
Пример. День Пирл-Харбора, 7 декабря 1941 г. Здесь
d = 7, m = 10, с = 19, Y = 41,
так что
W = 7 + 25 + 41 + 10 + 4 — 38 ≡ 0 (mod 7).
т. е. это было в воскресенье.
Пример. Каким днем недели будет 1 января 2000 года? Здесь
d = 1, m = 11, с = 19, Y = 99
и
W = 1 + 28 + 1 + 3 + 4 — 38 ≡ 6 (mod 7);
таким образом, первый день следующего столетия будет субботой.
При пользовании этой формулой следует помнить, что
ее нельзя применять для того периода, когда еще не был введен
григорианский календарь. В Англии и английских колониях он был введен в
1752 году, при этом из календаря было опущено одиннадцать дней: 3
сентября стали считать 14 сентября по новому стилю.
Оставшаяся часть этого параграфа предназначена для
тех, кто хотел бы познакомиться с выводом формулы (8.2.2). Вывод формулы
проведем в два этапа. Во-первых, определим номер дня недели для 1 марта
произвольного N-го года в формуле (8.2.1). Начнем отсчет от
некоторого года, скажем, от 1600-го, и обозначим номер дня недели для 1
марта этого года через d1600. Можно было бы узнать
номер этого дня из архивных документов, но можно обойтись и без этого, а
получить его, как результат рассуждений.
Если бы не было високосных лет, то мы могли бы найти dN — номер дня недели 1 марта N-то года, просто добавляя по одному дню к d1600 для каждого из прошедших лет. Это дает число
d1600 + (100с + Y — 1600) (mod 7). (8.2.3)
Принимая во внимание високосные годы и предполагая,
что они следуют регулярно каждый четвертый год, мы должны прибавить к
первому выражению еще следующее:
[1/4 (100с + Y — 1600)] = 25с — 400 + [1/4 Y]. (8.2.4)
Однако это чуть больше, чем нужно, потому что год
окончания каждого столетия обычно не бывает високосным, и ввиду этого мы
должны вычесть число
с—16. (8.2.5)
Но мы должны еще учесть следующее исключение: если с — номер столетия, делится на четыре, то год 100 с считается високосным. Таким образом, нужно добавить последнюю поправку
[1/4 (с -16)] = [1/4 с] — 4. (8.2.6)
Теперь мы сложим выражение (8.2.3) и (8.2.4), вычтем (8.2.5) и прибавим (8.2.6). Это даст нам номер дня недели 1 марта N-гo года в виде выражения
dN ≡ d1600 + 124с + Y — 1988 + [1/4 с] + [1/4 Y] (mod 7).
Чтобы упростить его, мы приводим числа по модулю 7 и таким образом получаем
dN ≡ d1600 — 2с + Y + [1/4 с] + [1/4 Y] (mod 7). (8.2.7)
Применим эту формулу к 1968 году, в котором 1 марта падает на пятницу, следовательно, d1968 = 5.
Здесь с = 19, [1/4 c] = 4, Y = 68, [1/4 Y] = 17,
и мы находим d1968 = 5 ≡ d + 2 (mod 7).
Это даст нам, что d1600 = 3, следовательно, 1 марта 1600 года было средой. Когда мы вставим полученное значение в (8.2.7). мы придем к формуле
dN = 3 — 2с + Y + [1/4 с] + [1/4 Y] (mod 7) (8.2.8)
для номера дня недели 1 марта N-го года.
Вторым этапом будет определение количества дней по
модулю 7 от 1 марта до произвольно взятого дня этого года. Так как
количество дней в месяце
меняется, то для этого требуется некоторая хитрость.
Начнем с нахождения количества дней, которые нужно прибавить к номеру
дня 1 марта, чтобы получить номер дня 1 числа любого другого месяца по
модулю 7.
Так как в марте 31 день, то для получения номера 1
апреля нужно добавить 3, для получения номера 1 мая мы должны добавить 3
+ 2 дней, так как в апреле 30 дней. Продолжая рассмотрение для
последующих месяцев, мы получаем добавочные слагаемые в виде следующей
таблицы:
|