Домашние задания: Информатика

Задача на логику

В этом месяце Лола, Мила и Неля впервые встретились в один день в фитнес-клубе. Известно, что:

Лола, Мила и Неля начали ходить в клуб только с прошлого месяца.
Одна из них приходит каждый второй день, другая раз в три дня, третья раз в неделю.
В этом месяце Лола первый раз пришла в клуб в понедельник, Мила первый раз пришла в среду, а Нели в пятницу.
В какой день (имеется в виду число) этого месяца они встретились?
Числа 2, 3, 7 - простые, поэтому все три любительницы фитнеса встречаются раз в 2 ∙ 3 ∙ 7 = 42 дня.
А в прошлом месяце они не встречались, значит, первая встреча у них - не позднее 42 - 28 = 14 числа.
Месяц мог начаться в любой из 7 дней. Периоды в 2, 3 и 7 дней могут соответствовать фитнессёршам 3! = 6-ю способами. Так что надо перебрать не более 7 ∙ 6 = 42 комбинаций. Число месяца, в которое они встретились все трое, приведено на пересечении строки и столбца с первым днём недели в месяце и раскладом по периодам.
 \ Периоды Л, М, Н   2 3 7   2 7 3   3 2 7   3 7 2   7 2 3   7 3 2
Начало месяца
Пн - 17 19
Вт - - - -
Ср - - - -
Чт - - - -
Пт - - - -
Сб - -
Вс

Клетка (1, 1): периоды посещений Л = 2, М = 3, Н = 7, и они впервые пришли на 1, 3 и 5 числа.
Л приходит по всем нечётным числам {1, 3, 5, ...}
М приходит по числам, кратным трём {3, 6, 9, ...}
Н приходит по числам, дающим остаток 5 от деления на 7 {5, 12, 19, ...}
Пересечение этих множеств в пределах 31-го дня - пустое.

Клетка (1, 2): периоды посещений Л = 2, М = 7, Н = 3, и они впервые пришли на 1, 3 и 5 числа.
Л приходит по числам {1, 3, 5, ...}
М приходит по числам {3, 10, 17, ...}
Н приходит по числам {5, 8, 11, ...}
Пересечение этих множеств даёт {17}. Не подходит, т.к. 17 > 14.

Клетка (1, 3): периоды посещений Л = 3, М = 2, Н = 7, они впервые пришли на 1, 3 и 5 числа.
Л приходит по числам {1, 4, 7, ...}
М приходит по числам {3, 5, 7, ...}
Н приходит по числам {5, 12, 19, ...}
Пересечение этих множеств = {19}. Не подходит, т.к. 19 > 14.

И так далее. Можно брать множества только до 14-го числа. Некоторые комбинации сразу отсеиваются, так как, например, Л не может первый раз придти 4-го или 7-го числа, если она приходит раз в 2 или 3 дня, и тогда в строках со второй по пятую остаётся только 2 из 6 комбинаций для проверки, а в шестой - 4 из 6. Я их сразу вычеркнул в таблице. Так же проверь вторую и третью мамзель. В общем, дерзай.

Или можно обобщить:
Допустим, w - номер дня недели, с которого начинается месяц (1 - понедельник и т.д.), 1 ≤ w ≤ 7.
Тогда Л пришла в день (8 - w) mod 7 + 1, М пришла в день (10 - w) mod 7 + 1, Н пришла в день (12 - w) mod 7.
Раскладываем по периодам посещений (P(имя) - период участницы, V(имя) = множество дней месяца, в которые она приходит, m - день встречи):
 V(Л) = {  (8 - w) mod 7 + 1 + i ∙ P(Л)   | i ∈ ℤ }
V(М) = { (10 - w) mod 7 + 1 + j ∙ P(М) | j ∈ ℤ }
V(Н) = { (12 - w) mod 7 + 1 + k ∙ P(Н) | k ∈ ℤ }
m ∈ V(Л) ∩ V(М) ∩ V(Н)

P(Л), P(М), P(Н) ∈ { 2, 3, 7 } и попарно не равны между собой
P(Л) + P(М) + P(Н) = 12
P(Л) ∙ P(М) ∙ P(Н) = 42
И решай эту систему в целых числах с указанными ограничениями.
 (8 - w) mod 7 + i ∙ P(Л) = (10 - w) mod 7 + j ∙ P(М) = (12 - w) mod 7 + k ∙ P(Н)

0 ≤ i, j, k ≤ 15
1 ≤ w ≤ 7
i, j, k, w ∈ ℤ
P(Л) + P(М) + P(Н) = 12
P(Л) ∙ P(М) ∙ P(Н) = 42
Елена Николаева(Блинова)
Елена Николаева(Блинова)
87 571
Лучший ответ