Transcript Решение.
Задачи на перебор возможных вариантов Такие задачи можно решать двумя способами: 1. Способ - ручной 1. Составление логической функции; 2. Упрощения ее и получения единственного решения, как следствие анализа полученного высказывания. Так решаются несложные задачи, имеющие одно решение. 2. Способ – с помощью компьютера 1. Составление логической функции; 2. Написание программы, вычисляющей ее таблицу истинности и выводящей все истинные значения этой функции. Как правило это более сложные задачи, имеющие несколько вариантов решений. Пример решения первым способом Задача1 . Алеша, Боря и Гриша нашли в земле сосуд. Каждый из них высказал по два предположения. Алеша: " Это сосуд греческий, V века". Боря: " Это сосуд финикийский, III века". Гриша: " Это сосуд не греческий, IV века". Учитель истории сказал ребятам, что каждый из них прав только в одном из двух своих предположений. Где и в каком веке был изготовлен сосуд? Решение. Введем обозначения: G - это сосуд греческий, F - сосуд финикийский. Цифры 3, 4, 5 - век. (1) (2) (3) Умножая (1) на (2), получим: G &5 & F &3 G &5 & F &3 G &5 & F &3 G &5 & F &3 1 =0 =0 Отбросим те логические произведения, в которых речь идет о невозможных событиях, Получим: Умножая уравнение (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 Next Next Next End Sub • Ответ: 123 Чита, Минск, Петрозаводск • 231 Петрозаводск, Чита, Минск В этой программе приведен пример так называемого «прямого перебора». Недостатком такого способа перебора является то, что с увеличением участников увеличивается количество циклов, что делает программу громоздкой как для написания, так и для исполнения компьютером. Поэтому в программировании есть другие приемы организации перебора, например: • Перебор с возвратом • Симплекс метод • Метод генетических алгоритмов