
Кэрол собирает информацию для своего фамильного древа. Так вышло, что она не знает дату рождения своей матери. Единственная зацепка, которую она нашла, — письмо ее дедушки к бабушке, которое он написал, когда родилась мать Кэрол. К сожалению, некоторые буквы стерлись (вместо них будут символы подчеркивания, причем количество этих символов никак не связано с количеством пропавших букв).
«Дорогая Вирджиния! Мог ли я знать, уходя на работу утром этого чудесного понедельника, что уже к вечеру у нас будет прекрасная дочурка. Да еще и прямо на годовщину нашей свадьбы! Я как сейчас помню тот невероятный выходной день, J___ 27th, 19___, когда мы поклялись друг другу в вечной любви и верности. Поздравляю тебя с нашей восьмой годовщиной, любовь моя! С любовью, Эдвин».
Задание: определите дату рождения матери Кэрол.
Подсказки
- В основе задачи лежит алгоритм Судного дня.
- Для тех, кто не учил английский: в этом языке на J начинаются три месяца: January, June, July.
Для решения этой задачи вам нужно знать некоторые календарные правила:
- в каждом обычном году 365 дней
- в високосном году 366 дней
- високосный год бывает каждые 4 года, кроме тех лет, номера которых делятся на 100 (но те, что делятся на 400, — високосные)
- таким образом, в 20 веке из лет, номера которых делятся на 4,только 1900 год не был високосным.
Поскольку при делении 365 на 7 в остатке остается 1, в обычные годы любая дата смещается на один день недели вперед. То есть, если 31 июля в 2020 году — пятница, мы можем точно сказать, что в 2021 году это будет суббота.
А поскольку при делении 366 на 7 в остатке остается 2, в високосный год любая дата после 28 февраля смещается на 2 дня недели. Например, если 31 июля 2019 года — среда, мы знаем, что в 2020 году этот день должен припадать на пятницу.
Из письма Эдвина к Вирджинии мы знаем:
- они поженились в январе, июне или июле (January, June, July)
- свадьба была в выходной день
- восемь лет спустя годовщина свадьбы была в понедельник.
Практически во все восьмилетние периоды бывает по 2 високосных года и 6 обычных. Это значит, что за 8 лет дата сместится на 10 дней недели вперед (= на 3 дня недели).
Если Эдвин и Вирджиния поженились в субботу, восемь лет спустя будет вторник, а если в воскресенье, то среда. Но мы знаем, что восемь лет спустя годовщина свадьбы выпала на понедельник.
Такое может быть, только если в восьмилетний период был лишь один високосный год. А это значит, что этот период должен был начаться в 1900 году! Кроме того, Эдвин и Вирджиния должны были пожениться до 28 февраля, потому что при любой дате после этого числа в восьмилетний период все равно попало бы два дня 29 февраля (как если бы было 2 високосных года).
Таким образом, у нас есть полный ответ. Эдвин и Вирджиния поженились 27 января 1900 года, а мать Кэрол родилась 27 января 1908 года!