вторник, 9 февраля 2016 г.

Поедание конвертов

Вы имеете 3 конверта, один из которых нужно немедленно съесть. В каждом конверте содержится листок с двумя утверждениями. В одном конверте оба утверждения истинны, в другом оба ложны, а в третьем одно ложно и одно истинно. Вот эти утверждения:

Конверт 1:
1. Этот конверт есть не надо
2. Обязательно нужно съесть второй конверт

Конверт 2:
1. Не нужно есть первый конверт
2. Ешьте третий конверт

Конверт 3.
1. Не стоит есть этот конверт
2. Смело съедайте первый конверт



Так какой конверт нужно съесть?



Думаю, наиболее эффективным будет такой метод.

Предполагаем, что конверт №X уже съеден и проверяем, как этот факт удовлетворяет условиям.
Перебираем X.

Условия переводим с человеческого на язык логики, формруем таблицу и проходим строки сверху вниз по столбцам слева направо. Там где . - не вычисляем (экономим вычислительные ресурсы), т.к. явно видно, что для этого столбца условия уже не выполнятся.
   1       2       3   
e2 or e3    F    T    T
e2    F    T    F
e2 or e3    F    T    T
e3    F    F    T
e1 or e2    .    T    F
e1    .    .    F




Комментариев нет:

Отправить комментарий