Марина общается с двумя друзьями — Сергеем и Олегом. Сергей всегда лжёт по понедельникам, четвергам, и воскресеньям. Олег лжёт по вторникам, средам и пятницам.
Встретив Марину, Сергей сказал: «Вчера я говорил правду»; Олег сказал: «А я вчера лгал».
В какой день происходят события?
Кто из друзей солгал, а кто сказал правду?
Задача на логику. Разберёмся по дням недели.
Дни и члены:
- Сергей лжет по понедельникам, четвергам и воскресеньям; говорит правду по вторникам, средам, пятницам, субботам.
STruth(d) = правда в этот день; ложь в остальные дни.
Ложь: Mon(0), Thu(3), Sun(6). Истина: Tue(1), Wed(2), Fri(4), Sat(5).
- Олег лжёт по вторникам, средам и пятницам; говорит правду по понедельникам, четвергам, субботам, воскресеньям.
OTruth(d) = правда в этот день; ложь в остальные дни.
Ложь: Tue(1), Wed(2), Fri(4). Истина: Mon(0), Thu(3), Sat(5), Sun(6).
Утверждения:
- Сергей говорит: «Вчера я говорил правду».
- Олег говорит: «А я вчера лгал».
Проверяем по дням (Yesterday = предыдущий день):
1) Понедельник
- STruth(Пн) = ложь; Yesterday(S) = STruth(Вск) = ложь.
Он должен лгать сегодня, и его высказывание ложно. Это подходит.
- OTruth(Пн) = истина; Yesterday(O) = OTruth(Вск) = истина.
Он должен говорить правду сегодня, но утверждение «я вчера лгал» ложно (вчера он говорил правду). противоречие. Значит, понедельник исключаем.
2) Вторник
- STruth(Вт) = истина; Yesterday(S) = STruth(Пн) = ложь.
Требуется, чтобы сегодня говорил правду, но «вчера я говорил правду» ложно. Не подходит.
3) Среда
- STruth(Ср) = истина; Yesterday(S) = STruth(Вт) = истина.
Сегодня говорит правду, и вчера говорил правду — подходит.
- OTruth(Ср) = ложь; Yesterday(O) = OTruth(Вт) = ложь.
Он должен лгать сегодня, и «я вчера лгал» ложно (перед ним вчера он лгал). Это противоречие: если он лжёт сегодня, его высказывание должно быть ложным, но Y_O = ложь означает, что он вчера говорил правду, следовательно «я вчера лгал» было бы ложью. В любом случае противоречие. Значит, среда исключаем.
4) Четверг
- STruth(Чт) = ложь; Yesterday(S) = STruth(Ср) = истина.
Сегодня он лжёт, но сказал бы ложь, если вчера говорил правду — противоречие. Исключаем.
5) Пятница
- STruth(Пт) = истина; Yesterday(S) = STruth(Чт) = ложь.
Сегодня говорит правду, но утверждение о вчерашней правде ложно. Не подходит.
6) Суббота
- STruth(Сб) = истина; Yesterday(S) = STruth(Пт) = истина.
Сегодня говорит правду, и вчера говорил правду — подходит.
- OTruth(Сб) = истина; Yesterday(O) = OTruth(Пт) = ложь.
Сегодня говорит правду, и «я вчера лгал» истинно (вчера он лгал). Всё согласуется.
7) Воскресенье
- STruth(Вс) = ложь; Yesterday(S) = STruth(Сб) = истина.
Сегодня лжём, а вчера говорил правду — противоречие. Исключаем.
Единственный оставшийся день: суббота (Сб).
Ответ:
- День событий: суббота.
- Сегодня оба говорили правду: Сергей сказал правду, Олег сказал правду.
- Дополнительное уточнение по вчерашним действиям: вчера (пятница) Сергей говорил правду, а Олег лгал.