Share This
Связаться со мной
Крути в низ
Categories
//День рождения матери: сложная задачка на логику

День рождения матери: сложная задачка на логику

03.03.2021Category : Python

den rozhdenija materi slozhnaja zadachka na logiku 1ce14dc - День рождения матери: сложная задачка на логику

Кэрол собирает информацию для своего фамильного древа. Так вышло, что она не знает дату рождения своей матери. Единственная зацепка, которую она нашла, — письмо ее дедушки к бабушке, которое он написал, когда родилась мать Кэрол. К сожалению, некоторые буквы стерлись (вместо них будут символы подчеркивания, причем количество этих символов никак не связано с количеством пропавших букв).

«Дорогая Вирджиния! Мог ли я знать, уходя на работу утром этого чудесного понедельника, что уже к вечеру у нас будет прекрасная дочурка. Да еще и прямо на годовщину нашей свадьбы! Я как сейчас помню тот невероятный выходной день, 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 года!

  • 4 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Свежие комментарии

    Рубрики

    About Author 01.

    Roman Spiridonov
    Roman Spiridonov

    Привет ! Мне 38 лет, я работаю в области информационных технологий более 4 лет. Тут собрано самое интересное.

    Our Instagram 04.

    Categories 05.

    © Speccy 2020 / All rights reserved

    Связаться со мной
    Close