Дано:
Двойка считает, что Туз в своем уме.
Тройка считает, что Туз не в своем уме.
Валет считает, что Двойка и Тройка в своем уме.
Вопросы:
В своем ли уме Двойка? В своем ли уме Тройка? В своем ли уме Валет?
В прошедшие выходные
_darkus_ предложил общественности похожую задачку. Многие участники предложили очевидное решение: считать утверждения персонажей логическими высказываниями, и для определения разумности Валета смотреть, существует ли такой набор свободных переменных, на котором его утверждение истинно. Вот только на приведенном выше примере такой подход дает парадоксальный набор ответов: Двойка в своем уме, Тройка в своем уме, а Валет, утверждающий именно это, вдруг оказывается не в своем уме.
Это что же, если один мой собеседник считает, что гит лучше меркуриала, а другой - что меркуриал лучше гита, то мне не стоит их обоих считать разумными, иначе я сам окажусь безумен?
На мой взгляд, ключ тут в том, чтобы различать утверждения "Х прав" и "Х в своем уме". Если кто-то в одном высказывании выдает явное противоречие (например, говорит, что Туз в своем уме и что Туз не в своем уме), то он не в своем уме. Если же его утверждение в каких-то случаях может быть правдой, то он разумен. Два персонажа при этом могут быть одновременно в своем уме, при этом делая прямо противоположные заявления. Они не могут быть одновременно правы, но вполне могут быть одновременно разумны. При таком подходе Валет в моем примере в своем уме. Причем реализация этого подхода в программе не требует даже никакого перебора по всем возможным значениям свободных переменных, все решается в один проход.
Upd. Некоторые решавшие задачку в духе исходной книжки Смаллиана, используя чисто булеву логику, считают разумными лишь тех, кто говорит тавтологии, т.е. чьи высказывания истинны при любом наборе свободных переменных. Я же считаю разумными всех, кто не говорит чепухи, т.е. всегда противоречивых утверждений. Если некоторое утверждение истинно при одном наборе значений свободных переменных и ложно при другом, я считаю утверждающего разумным, они же считают, что о его разумности ответить нельзя.
Двойка считает, что Туз в своем уме.
Тройка считает, что Туз не в своем уме.
Валет считает, что Двойка и Тройка в своем уме.
Вопросы:
В своем ли уме Двойка? В своем ли уме Тройка? В своем ли уме Валет?
В прошедшие выходные
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
Это что же, если один мой собеседник считает, что гит лучше меркуриала, а другой - что меркуриал лучше гита, то мне не стоит их обоих считать разумными, иначе я сам окажусь безумен?
На мой взгляд, ключ тут в том, чтобы различать утверждения "Х прав" и "Х в своем уме". Если кто-то в одном высказывании выдает явное противоречие (например, говорит, что Туз в своем уме и что Туз не в своем уме), то он не в своем уме. Если же его утверждение в каких-то случаях может быть правдой, то он разумен. Два персонажа при этом могут быть одновременно в своем уме, при этом делая прямо противоположные заявления. Они не могут быть одновременно правы, но вполне могут быть одновременно разумны. При таком подходе Валет в моем примере в своем уме. Причем реализация этого подхода в программе не требует даже никакого перебора по всем возможным значениям свободных переменных, все решается в один проход.
Upd. Некоторые решавшие задачку в духе исходной книжки Смаллиана, используя чисто булеву логику, считают разумными лишь тех, кто говорит тавтологии, т.е. чьи высказывания истинны при любом наборе свободных переменных. Я же считаю разумными всех, кто не говорит чепухи, т.е. всегда противоречивых утверждений. Если некоторое утверждение истинно при одном наборе значений свободных переменных и ложно при другом, я считаю утверждающего разумным, они же считают, что о его разумности ответить нельзя.