Решение.

Download Report

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 Петрозаводск, Чита, Минск
В этой программе приведен пример так
называемого «прямого перебора».
Недостатком такого способа перебора
является то, что с увеличением участников
увеличивается количество циклов, что делает
программу громоздкой как для написания, так и
для исполнения компьютером.
Поэтому в программировании есть другие
приемы организации перебора, например:
• Перебор с возвратом
• Симплекс метод
• Метод генетических алгоритмов