Такие задачи можно решать двумя способами: 1.Способ - ручной 1.Составление логической функции; 2.Упрощения ее и получения единственного решения, как следствие анализа полученного высказывания. Так решаются несложные задачи, имеющие одно решение. 2. Способ – с помощью компьютера 1.Составление логической функции; 2. Написание программы, вычисляющей ее таблицу истинности и выводящей все истинные значения этой функции. Как правило это более сложные задачи, имеющие несколько вариантов решений. Задачи на перебор возможных вариантов
Пример решения первым способом Задача1. Алеша, Боря и Гриша нашли в земле сосуд. Каждый из них высказал по два предположения. Алеша: " Это сосуд греческий, V века". Боря: " Это сосуд финикийский, III века". Гриша: " Это сосуд не греческий, IV века". Учитель истории сказал ребятам, что каждый из них прав только в одном из двух своих предположений. Где и в каком веке был изготовлен сосуд? Решение. Введем обозначения: G - это сосуд греческий, F - сосуд финикийский. Цифры 3, 4, 5 - век. Умножая (1) на (2), получим: =0 Отбросим те логические произведения, в которых речь идет о невозможных событиях, (1) (2) (3)
Умножая уравнение (4) на уравнение (3), получим: Получим: Ответ: Сосуд изготовлен в Финикии в V веке.
Пример решения вторым способом Задача 2.Рейсы самолетов В связи с плохой погодой задерживаются три рейса самолетов – в Читу, Минск и Петрозаводск. Командиры самолетов высказали пожелания: чтобы рейс в Читу был первым или вторым (x1);i Минск- вторым или третьим (х2); j Петрозаводск – первым или третьим (х3).k Можно ли удовлетворить пожелания летчиков? Х4- дополнительное условие, чтобы не было повторения рейсов в одном направлении.
Код макроса в Word Sub рейсы() Dim R(3,3,3) as integer For i=1 to 3 For j=1 to 3 For k=1 to 3 For R(i,j,k)=-1 to -1 X1=R(1,j,k) Or R(2,j,k) X2=R(i,2,k) Or R(i,3,k) X3=R(i,j,1) Or R(i,j,3) x4 = Not (i=j) And Not (i=k) And Not (j=k) x = x1 And x2 And x3 And x4 If X 0 then Selection.text=i & j & k & vbCr Selection.move End If Next End Sub
Ответ: 123Чита, Минск, Петрозаводск 231Петрозаводск, Чита, Минск В этой программе приведен пример так называемого «прямого перебора». Недостатком такого способа перебора является то, что с увеличением участников увеличивается количество циклов, что делает программу громоздкой как для написания, так и для исполнения компьютером. Поэтому в программировании есть другие приемы организации перебора, например: Перебор с возвратом Симплекс метод Метод генетических алгоритмов