Задача: угадать месяц по двум дням
medium

Задача: угадать месяц по двум дням

Задача про очень умного аналитика

Один аналитик в компании хвастался, что может сделать нужные выводы даже из минимальной информации. Руководитель задал ему такую задачку:

Если взять дату, которая была в последний понедельник прошлого месяца, и сложить с датой, которая будет в первый четверг следующего месяца, получится число 38. Какой сейчас месяц и год, если это всё месяцы одного года?

Аналитик подумал несколько минут и дал правильный ответ. Какой это ответ? Как он узнал?

Находим числа

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

Начнём с четверга следующего месяца и посмотрим на календарь:

По календарю видно, что первый четверг может быть первым числом, вторым, третьим и так далее до седьмого. Но восьмым числом четверг уже быть не может, потому что он тогда будет не первый уже, а второй.

Получается, что диапазон дат первого четверга лежит от 1 до 7. Но общая сумма дат равна 38, а это значит, что дата последнего понедельника предыдущего месяца лежит в диапазоне от 37-го до 31-го числа. В месяце не может быть больше 31 числа, а значит, единственные даты, которые нам подходят, такие:

понедельник, 31-е число

четверг, 7-е число

Определяем месяц

Теперь посмотрим, в каких месяцах есть 31-е число:

  • январь,
  • март,
  • май,
  • июль,
  • август,
  • октябрь,
  • декабрь.

Это значит, что в нашем текущем месяце максимально может быть:

  • 28 чисел, если это февраль;
  • 29 чисел, если это февраль високосного года;
  • 30 чисел, если это один из тех месяцев, что следуют за месяцем с 31 днём;
  • 31 число, если это август, который идёт после июля.

Проверим их все по очереди, но сначала нарисуем календарь на прошлый месяц так, чтобы 31-е было последним понедельником:

Февраль, 28 дней. Раз 31-е число — это понедельник, то 1 февраля будет вторник, а 28 февраля снова понедельник. Получается, что в следующем месяце первое число будет вторником, а третье — четвергом. Но 31 + 3 = 34, что не соответствует условию задачи, поэтому февраль, где 28 дней, нам не подходит.

Февраль, 29 дней. Раз 31-е число — это понедельник, то 1 февраля будет вторник, а 29 февраля тоже будет вторник. Получается, что в следующем месяце первое число будет средой, а второе — четвергом. Но 31 + 2 = 33, что не соответствует условию задачи, поэтому февраль, где 29 дней, нам тоже не подходит.

Месяц, где 30 дней. Раз 31-е число — это понедельник, то 1-е число текущего месяца будет вторник, а 30-е среда. Получается, что в следующем месяце первое число будет четвергом. Но 31 + 1 = 32, что не соответствует условию задачи, поэтому февраль, где 29 дней, нам тоже не подходит.

Методом исключения получается, что единственный вариант, который у нас остаётся, — это когда и в прошлом, и в текущем месяце есть 31-е число. Такое бывает только у двух пар:

  • декабрь → январь;
  • июль → август.

По условию все месяцы должны быть одного года, поэтому декабрь и январь нам не подходят. Остаётся июль, август и сентябрь — проверим их:

Получается, сейчас — август. Осталось понять, какого года. 

Методом простой сверки с календарями разных лет выясняем, что 7 сентября выпадает на четверг в 2023, 2017, 2006, 1999 году и так далее. То есть в среднем каждые 6–9 лет. Чтобы понять, какой это конкретный год, нужно как-то ограничить поиск.

Корректор:

Ира Михеева

Художник:

Алексей Сухов

Вёрстка:

Кирилл Климентьев

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Вам может быть интересно
medium
[anycomment]
Exit mobile version