Верификация решения математической логической задачи
Вопрос в следующем:
Детектив опросил четырех свидетелей преступления. На основании того, как прошли эти допросы, детектив пришел к следующему выводу:
- Если дворецкий говорит правду, значит, повар тоже.
- Повар и садовник не могут одновременно говорить правду.
- Садовник и разнорабочий не лгут.
- Если мастер говорит правду, значит, повар лжет.
Вопрос в том, может ли детектив выяснить, лжет ли каждый из лиц или нет? Объясните причину.
Ответ:
Мы здесь только смотрим, правдив ли кто-то или нет. Итак, мы можем просто взять переменную, которая используется either True or False
в любом из возможных случаев, и вернуться оттуда обратно. cook
является одной из таких переменных [True означает, что конкретный человек говорит правду, а False означает прямо противоположное].
Если мы считаем, cook
что это правда, handyman
должно быть ложь (утверждение № 4). Согласно утверждению № 3, gardener
и handyman
оба не могут быть Ложью одновременно, поскольку мы уже знаем, handyman
что Ложь (то есть ложь), gardener
должна быть Истиной.
Если gardener
True, согласно утверждению № 2, cook
должно быть False. Это противоречит нашему первому предположению, что cook
это правда, т.е. Что оставляет нас cook
Ложь.
Мы не можем прямо сказать, что cook
это Ложь, и дело раскрыто. Это потому, что если cook
False, то handyman
True. Но этот оператор №3 разветвляет на два разных пути.
gardener
и handyman
оба не являются ложными, что означает, что либо одно из них истинно, либо оба. Так как handyman
это правда, давайте сначала рассмотрим gardener
ложь. Теперь мы снова находимся в той же ситуации, когда любой из них ложен или оба. Если cook
True, мы будем противоречить нашему первоначальному предположению, поэтому cook
не может быть True. Что оставляет нас cook
ложными. Это дает нам первый набор логически правильных предположений. Давайте это запишем.
cook = False
handyman = True
gardener = False
butler = False
Теперь мы будем считать, gardener
что это правда. Если gardener
True, cook
должно быть False. Итак, теперь у нас есть еще один набор решений
cook = False
handyman = True
gardener = True
butler = False
Сравнивая два логически правильных решения, мы можем легко прийти к предположению, что детектив не может определить, лжет каждый человек или нет, поскольку существует более одного возможных случаев.
Метод слишком утомительный? Есть ли другой способ добиться того же? Все самоучка, поэтому использование разных терминов мне сейчас чуждо, если кто-нибудь сможет указать мне правильное направление, я буду благодарен.
Ответы
Помещение.
b означает c
not-c или not-g
g или h
h подразумевает not-c
Предположим, что not-g. Таким образом,
h; not-c: not-b.
Assune g. Таким образом,
not-c: not-b.
Заключение.
Врут повар и дворецкий.
Либо повар, либо разнорабочий говорят правду.
Невозможно определить, лгут ли они.
Чтобы получить тот же ответ другим способом:
Если вы просто начинаете сверху и двигаетесь вперед, Butler-true подразумевает Cook-true (на 1) подразумевает Gardener-false (на 2) подразумевает Handyman-true (на 3) подразумевает Cook-false (на 4), противоречие. Значит, дворецкий лжет; более того, противоречие возникло исключительно из-за импликации («Кук-правда») Батлера-правда, так что повар действительно тоже лжет.
Тогда условия 1, 2 и 4 становятся пустыми, и условие 3 остается единственным ограничением.
Вопрос в том, может ли детектив выяснить, лжет ли каждый из этих людей? Объясните причину
Если единственный вопрос, на который вы должны здесь ответить, - это приведенный выше, тогда, в зависимости от того, какой будет ответ (истинный или ложный), вы должны будете записать другое доказательство.
Если ответ - « верно : детектив может решить, кто лжет», то вам необходимо доказать, что условия проблемы предполагают одно конкретное решение. (Это в основном то, что вы делали в своем вопросе.)
Однако, если ответ будет « ложным : детектив не может решить, кто лжет», то все, что вам нужно будет записать, - это как минимум два разных списка лжи , которые соответствуют условиям задачи.
Поскольку ответ здесь ложный , все, что вам нужно будет записать в качестве доказательства, будет:
Детектив не может решить, кто лжет, потому что это могут быть (дворецкий, повар) или (дворецкий, повар, садовник) или (дворецкий, повар, разнорабочий). Все эти три возможности соответствуют условиям проблемы.
Конечно, очень поучительно и полезно записать, как вы пришли к этим трем возможностям. Однако пропуск этой части не делает ваше доказательство менее достоверным (хотя, возможно, и делает его намного уродливее!). Кроме того, в зависимости от того, является ли это задачей конкурса (или экзамена), такое решение может не быть принято в качестве полного решения, так как «рассуждения» в нем не будут полностью объяснены. Хотя математически это был бы правильный ответ.