
- •Введение
- •1. Булевы функции
- •1.1. Определение булевых функций
- •Контрольные задания
- •1.2. Построение сндф, снкф и снпф. Минимизация
- •1.3. Реализация метода Квайна – Мак-Класки
- •Контрольное задание
- •Варианты задания
- •1.4. Замкнутые классы. Полнота. Теорема Поста
- •Контрольное задание
- •1.5. Моделирование релейно-контактных схем
- •Котрольное задание
- •1.6. Моделирование сумматоров
- •Контрольное задание
- •2. Основные положения математической логики
- •2.1. Формальные теории
- •2.2. Исчисление высказываний
- •2.3. Исчисление предикатов
- •2.4. Приложение исчисления предикатов к аналитической геометрии
- •Контрольное задание
- •3. Вычислимость
- •3.1. Неформальное определение алгоритма. Примеры
- •Контрольное задание
- •3.3. Рекурсия
- •3.4. Вычислимость по Тьюрингу
- •4. Конечные автоматы
- •4.1. Основные определения и способы задания
- •Контрольное задание
- •4.2. Эквивалентность автоматов. Минимизация
- •Контрольное задание
- •4.3. Автоматы Мили и Мура. Размеченные графы
- •4.4. Автоматные языки
- •4.5. Возможности автоматов
- •5. Некоторые классические алгоритмы
- •5.1. Алгоритмы сортировки и их классификация
- •5.2. Поиск
- •Библиографический список
- •Оглавление
Контрольные задания
1. Максимально упростить выражение своего варианта, воспользовавшись законами логики Буля. Затем с помощью таблиц истинности сравнить упрощенное выражение с исходным:
(a
(רd
b)) (( רa ( רb d)) c) רc (a (b רd)),
((a c) (a d)) (((c (c b)) רc) רa),
( רb d) (( רd c) (a c) ( רd רc) (a רc)) (b d),
(a רc) ( רa רb) ( רb c) ( רa b) (b c),
(a c) ((b רd) ( רa רd) (d b) ( רa d)) (a רc),
(( רb רc) (a b)) (d רc) ((( רb רa) c) (a b)),
(a רc) ( רa רb) (b c) ( רa b) (c רb),
((a (c (b c))) ר(c d) (c רd)) (c ( רd רc) d),
((a רa) ( רb רd) ( רb רc) ( רc d)) (( רb c) (c d)),
(a רc) (( רa d) (b d) ( רa רd) (b רd)) (a c),
((d רc) ( רd רb) (c רb)) (( רd b) (c b)) ( רa a),
(( רc רd) (b c)) ( רa רd) ((( רc רb) d) (c b)),
((a b) ( רb c d) ( רa רb c d) רb רc d,
((a b) (a רb)) (( רa b) (c רd) ( רa רb) (d c)),
(( רb c) ( רc d) רa) ( רa b רc d) ר(c d) a,
((b c)
(d ( רb רc))) ( רd רa) ((c b) ( רd רc)),
(b d) ((c רd) (a c) ( רd רc) (a רc)) ( רb d),
(( רc d) (d a)) ((b רb) ( רc רa) ( רc רd) ( רd a)),
(a רd) ((( רc רb) d) (c b)) (( רd רc) (c b)),
(((d (d c)) רd) רb) ((b d) (b a)),
(( רb ( רc a)) d)) רd (b (c רa)) (b ( רa c)),
((c רa) ( רa רb) (a c) ( רb a)) (b רd) (b d),
(d ( רa רd) a) ((b (d (d c))) ר(c a) (d רa)),
( רc רb) (d c) ( רb с) (d רc) (b רd).
Пример. ( רc רb) (d c) ( רb c) (d רc) (b רd):
( רc רb) ( רb c)= רb,
(d c) (d רc)= d,
d (b רd)= (b d) (d רd)= (b d) I= b d,
רb d (b רd)= רb b d= I d= I.
2. Установить эквивалентность левой и правой частей следующих логических выражений:
((a|b)|(a~b))|((c+d)→(d/c))=((b→c)→(a/c))↓((a|d)|(d→ רb)),
((a רc)↓(b/c)) ((a|d)/(b d))=((a|b)|(a+ רb))→((c+d) (d→c)),
((a↓b) (a+b))/((c/d)↓(c~d))=((c→a) (c→b)) →((a↓d) (b↓d)),
((a~b)/(a↓b))↓((c~d)↓(c/d))=((c/a)↓(c/b))|((a↓d)↓(b↓d)),
((a b) (a+b))/((d/c)↓(d~c))=((a→c) (b→c)) →((a|d)|(b|d)),
((a b)/(a+b)) ((c/d)↓(c~d))=((c/a)↓(c/b)) ((a d)/(b↓d)),
((d→b)→( רc/b))↓((c a)|(d→a))=(( רc|d)|(c+d))|((a~b)→( רa/b)),
((a|b)/( רa+ רb)) ((d/c)↓(c~d))=(( רa↓ רd)↓(b/ רd)) ((a→c)/(b/c)),
((c/a) (c~a))/((d/b)↓(d~b))=((a b) (c→b))→((d/a) (c d)),
((c~b)/(b↓c))↓(( רa~ רd)↓(a/d))=((b↓d)↓(c↓d))|((a/b)↓(a/c)),
((a/d) (a~d))/((b/c)↓(b~c))=((b→d) (a|b))→((c d)|(a→c)),
((b↓d)↓(c↓d)) ((a→b)/(a/c))=((b c)/(b+c)) ((a/d)↓(a~d)),
((c→d)|(c+d))|((a~b)→(a b))=((a→ רc)→(a/d))↓((b→d)|(b→ רc)),
((b d)↓(b c)) ((d→a)/(c/a))=((c|d)|( רc~ רd))→((a+b) (b→a)),
((d/a) (d~a))/((c/b)↓( רc+b))=((a b) (d→b))→((c d) (c/a)),
((c→d)/(c~d)) ((a b)↓(a+b))=((b c)↓(b/d)) ((a|c)/(a/d)),
(( רc→b)→(d↓b))↓((a→d)|(a→c))=((c d)|(c~d))|(( רa+ רb)→(a/b)),
((a c)↓(b/ רa)) ((c→d)/(b/d))=((b|c)|(b~c))→((a+d) (a→d)),
((b↓ רd) ( רb+d))/((a/c)↓(a~c))=(( רc→b) (d→c)) →((a/b) (a d)),
((d a)↓(b d))|((a/c)↓(b/c))=((a+ רb)/(b a))↓(( רc~ רd)↓(d/c)),
((a↓b) ( רa~b))/((c/d)↓(c~d))=(( רa→d) ( רd→b))→((c→a)|(c→b)),
((c→a)/(a+ רc)) ((d/b)↓(b~d))=((a↓b)↓(c/b)) ((d→a)/(c d)),
((c| רb)|(c~ רb))|(( רa+ רd)→( רa/ רd))=((c→ רd)→( רb/ רd))↓
↓(( רb| רa)|( רa→c)),
((c↓ רb) (c+ רb))/(( רd/ רa)↓( רd~ רa))=(( רd→ רb) ( רd→c))→
→ (( רb↓ רa) (c↓ רa)).
Пример основных фрагментов программы:
/
frazn, + xor,
or,
and,
fimp,
fsp,
| fsh, ~, = feqv – логические функции и их идентификаторы;
function fsp(x,y:boolean): boolean;
begin fsp:=(not x) and (not y); end;
function feqv(x,y:boolean): boolean;
begin feqv:=(not x) and (not y) or x and y; end;
function frazn(x,y:boolean): boolean;
begin frazn:=x and (not y); end;
function fimp(x,y:boolean): boolean;
begin fimp:=(not x) or y; end;
begin
for a:=false to true do
for b:=false to true do
for c:=false to true do
for d:=false to true do begin
m1:=fsp(c,not b); m2:=c xor (not b); m3:=frazn(not d,not a); m4:=feqv(not d,not a); m5:=m1 or m2; m6:=fsp(m3,m4);
f1:=frazn(m5,m6);
n1:=fimp(not d,not b); n2:=fimp(not d,c); n3:=fsp(not b,not a);
n4:=fsp(c,not a); n5:=n1 and n2; n6:=n3 or n4;
f2:=fimp(n5,n6);
fsrav:=feqv(f1,f2);
write('| ');
if a then write('1') else write('0');
if b then write(' 1') else write(' 0');
if c then write(' 1') else write(' 0');
if d then write(' 1') else write(' 0');
write(' | ');
if f1 then write(' 1') else write(' 0');
write(' | ');
if f2 then write(' 1') else write(' 0');
write(' | ');
if fsrav then write(' 1') else write(' 0');
writeln(' | ');
end;
readln;
end.
Результат работы программы – таблица истинности: