Логические основы компьютеров
§ 18. Логика и компьютер
§ 19. Логические операции
§ 20. Диаграммы
§ 21. Упрощение логических выражений
§ 22. Синтез логических выражений
§ 23. Предикаты и кванторы
§ 24. Логические элементы компьютера
§ 25. Логические задачи
1
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Логические основы компьютеров
§ 18. Логика и компьютер
2
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Логика, высказывания
3
Аристотель
(384-322 до н.э.)
Логика (др.греч. λογικος) – это наука о том, как правильно рассуждать, делать выводы, доказывать утверждения.
Формальная логика отвлекается от конкретного содержания, изучает только истинность и ложность высказываний.
Логическое высказывание – это повествовательное предложение, относительно которого можно однозначно сказать, истинно оно или ложно.
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Высказывание или нет?
4
Сейчас идет дождь.
Жирафы летят на север.
История – интересный предмет.
У квадрата – 10 сторон и все разные.
Красиво!
В городе N живут 2 миллиона человек.
Который час?
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Логика и компьютер
5
Двоичное кодирование – все виды информации кодируются с помощью 0 и 1.
Задача – разработать оптимальные правила обработки таких данных.
Почему «логика»?�Результат выполнения операции можно представить как истинность (1) или ложность (0) некоторого высказывания.
Джордж Буль разработал основы алгебры, �в которой используются только 0 и 1�(алгебра логики, булева алгебра).
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Логические основы компьютеров
§ 19. Логические операции
6
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Обозначение высказываний
7
A – Сейчас идет дождь.
B – Форточка открыта.
простые высказывания (элементарные)
Составные высказывания строятся из простых с помощью логических связок (операций) «и», «или», «не», «если … то», «тогда и только тогда» и др.
Любое высказывание может быть ложно (0) �или истинно (1).
!
A и B
A или не B
если A, то B
A тогда и только
тогда, когда B
Сейчас идет дождь и открыта форточка.
Сейчас идет дождь или форточка закрыта.
Если сейчас идет дождь, то форточка открыта.
Дождь идет тогда и только тогда, когда открыта форточка.
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Операция НЕ (инверсия)
8
Если высказывание A истинно, то «не А» ложно, и наоборот.
А | не А |
| |
| |
1
0
0
1
таблица истинности операции НЕ
также , , �not A (Паскаль), �! A (Си)
Таблица истинности логического выражения Х – это таблица, где в левой части записываются все возможные комбинации значений исходных данных, а в правой – значение выражения Х для каждой комбинации.
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Операция И
9
Высказывание «A и B» истинно тогда и только тогда, когда А и B истинны одновременно.
220 В
A и B
A
B
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Операция И (логическое умножение, конъюнкция)
10
A | B | А и B |
| | |
| | |
| | |
| | |
1
0
также: A·B, A ∧ B,�A and B (Паскаль), �A && B (Си)
0
0
0
1
1
0
1
1
0 |
1 |
2 |
3 |
0
0
конъюнкция – от лат. conjunctio — соединение
A ∧ B
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Операция ИЛИ (логическое сложение, дизъюнкция)
11
Высказывание «A или B» истинно тогда, когда истинно А или B, или оба вместе.
220 В
A или B
A
B
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Операция ИЛИ (логическое сложение, дизъюнкция)
12
A | B | А или B |
| | |
| | |
| | |
| | |
1
0
также: A+B, A ∨ B,�A or B (Паскаль), �A || B (Си)
0
0
0
1
1
0
1
1
1
1
дизъюнкция – от лат. disjunctio — разъединение
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Задачи
13
В таблице приведены запросы к поисковому серверу. Расположите номера запросов в порядке возрастания количества страниц, которые найдет поисковый сервер по каждому запросу. Для обозначения логической операции «ИЛИ» в запросе используется символ |, а для логической операции «И» – &.
1) принтеры & сканеры & продажа
2) принтеры & продажа
3) принтеры | продажа
4) принтеры | сканеры | продажа
1 2 3 4
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Операция «исключающее ИЛИ»
14
Высказывание «A ⊕ B» истинно тогда, когда истинно А или B, но не оба одновременно (то есть A ≠ B).
«Либо пан, либо пропал».
A | B | А ⊕ B |
| | |
| | |
| | |
| | |
0
0
также: �A xor B (Паскаль), �A ^ B (Си)
0
0
0
1
1
0
1
1
1
1
сложение по модулю 2: А ⊕ B = (A + B) mod 2
арифметическое сложение, 1+1=2
остаток
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Свойства операции «исключающее ИЛИ»
15
A ⊕ A =
(A ⊕ B) ⊕ B =
A ⊕ 0 =
A ⊕ 1 =
A
0
?
A | B | | | | А ⊕ B |
0 | 0 | | | | |
0 | 1 | | | | |
1 | 0 | | | | |
1 | 1 | | | | |
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
A
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Импликация («если …, то …»)
16
Высказывание «A → B» истинно, если не исключено, что из А следует B.
A – «Работник хорошо работает».
B – «У работника хорошая зарплата».
A | B | А → B |
0 | 0 | |
0 | 1 | |
1 | 0 | |
1 | 1 | |
1
1
1
0
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Импликация («если …, то …»)
17
«Если Вася идет гулять, то Маша сидит дома».
A – «Вася идет гулять».
B – «Маша сидит дома».
Маша может пойти гулять �(B=0), а может и не пойти (B=1)!
A | B | А → B |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 1 | 1 |
А если Вася не идет гулять?
?
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Эквивалентность («тогда и только тогда, …»)
18
Высказывание «A ↔ B» истинно тогда и только тогда, когда А и B равны.
A | B | А ↔ B |
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Базовый набор операций
19
С помощью операций И, ИЛИ и НЕ можно реализовать любую логическую операцию.
ИЛИ
И
НЕ
базовый набор операций
Сколько всего существует логических операций с двумя переменными?
?
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Штрих Шеффера, «И-НЕ»
20
A | B | А | B |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Базовые операции через «И-НЕ»:
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Стрелка Пирса, «ИЛИ-НЕ»
21
A | B | А ↓ B |
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
Базовые операции через «ИЛИ-НЕ»:
Самостоятельно…
!
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Формализация
22
Прибор имеет три датчика и может работать, если два из них исправны. Записать в виде формулы ситуацию «авария».
A – «Датчик № 1 неисправен».
B – «Датчик № 2 неисправен».
C – «Датчик № 3 неисправен».
Аварийный сигнал:
X – «Неисправны два датчика».
X – «Неисправны датчики № 1 и № 2» или
«Неисправны датчики № 1 и № 3» или
«Неисправны датчики № 2 и № 3».
логическая формула
Формализация – это переход к записи на формальном языке!
!
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Вычисление логических выражений
23
Порядок вычислений:
A
B
+
∙
+
B
C
∙
A
С
∙
1 4 2 5 3
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Составление таблиц истинности
24
A | B | A·B | | | X |
0 | 0 | | | | |
0 | 1 | | | | |
1 | 0 | | | | |
1 | 1 | | | | |
0 |
1 |
2 |
3 |
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
Логические выражения могут быть:
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Составление таблиц истинности
25
A | B | C | A∙B | A∙C | B∙C | X |
0 | 0 | 0 | | | | |
0 | 0 | 1 | | | | |
0 | 1 | 0 | | | | |
0 | 1 | 1 | | | | |
1 | 0 | 0 | | | | |
1 | 0 | 1 | | | | |
1 | 1 | 0 | | | | |
1 | 1 | 1 | | | | |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Задачи (таблица истинности)
26
Символом F обозначено одно из указанных ниже логических выражений от трех аргументов: X, Y, Z. Дан фрагмент таблицы истинности выражения F. Какое выражение соответствует F?
X | Y | Z | F |
1 | 0 | 0 | 1 |
0 | 0 | 0 | 1 |
1 | 1 | 1 | 0 |
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Логические основы компьютеров
§ 20. Диаграммы
27
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Диаграммы Венна (круги Эйлера)
28
A
B
A
B
A
A·B
A
B
A+B
A⊕B
A→B
A↔B
A
B
A
B
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Диаграмма с тремя переменными
29
Хочу
Могу
Надо
1
2
3
4
5
6
7
8
Логические выражения можно упрощать!
!
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Задачи
Известно количество сайтов, которых находит поисковый сервер по следующим запросам :
Сколько сайтов будет найдено по запросу
огурцы | помидоры
30
Запрос | Количество сайтов |
огурцы | 100 |
помидоры | 200 |
огурцы & помидоры | 50 |
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Задачи
31
NA|B = NA+ NB
A
B
A
B
NA|B = NA+ NB – NA&B
огурцы | помидоры
50
огурцы
помидоры
100
200
огурцы & помидоры
250
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Задачи
Известно количество сайтов, которых находит поисковый сервер по следующим запросам :
Сколько сайтов будет найдено по запросу
Динамо & Спартак & Рубин
32
Запрос | Количество сайтов |
Динамо & Рубин | 320 |
Спартак & Рубин | 280 |
(Динамо | Спартак) & Рубин | 430 |
Общее условие с & можно отбросить !
!
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Задачи
Известно количество сайтов, которых находит поисковый сервер по следующим запросам :
Сколько сайтов будет найдено по запросу
Динамо & Спартак
33
Запрос | Количество сайтов |
Динамо | 320 |
Спартак | 280 |
Динамо | Спартак | 430 |
Ответ: 320 + 280 – 430 =
170
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Задачи
34
Динамо
Спартак
Рубин
1
2
3
Динамо & Рубин
= 1 + 2 = 320
Спартак & Рубин
= 2 + 3 = 280
(Динамо | Спартак) & Рубин
= 1 + 2 + 3 = 430
Динамо & Спартак & Рубин
= 2
= (320 + 280) – 430 =
170
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Задачи
Некоторый сегмент сети Интернет состоит из 1000 сайтов. Поисковый сервер в автоматическом режиме составил таблицу ключевых слов для сайтов этого сегмента. Вот ее фрагмент:
Сколько сайтов будет найдено по запросу
(принтер | сканер) & монитор
если по трем следующим запросам найдено:
принтер | сканер – 450 сайтов,
принтер & монитор – 40 сайтов
сканер & монитор – 50 сайтов.
35
Ключевое слово | Количество сайтов, для которых данное слово является ключевым |
сканер | 200 |
принтер | 250 |
монитор | 450 |
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Задачи
36
А (сканер)
B (принтер)
NA|B = NA+ NB – NA&B
принтер | сканер
450
сканер
принтер
200
250
0
сканер
принтер
монитор
90
40 + 50 =
принтер & монитор = 40
сканер & монитор = 50
50
40
(принтер | сканер) & монитор = ?
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Сложная задача
37
Ниже приведены запросы и количество страниц, которые нашел поисковый сервер по этим запросам в некотором сегменте Интернета:
мезозой 500
кроманьонец 600
неандерталец 700
мезозой | кроманьонец 800
мезозой | неандерталец 1000
неандерталец & (мезозой | кроманьонец) 200
Сколько страниц будет найдено по запросу
кроманьонец & (мезозой | неандерталец)
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Логические основы компьютеров
§ 21. Упрощение логических выражений
38
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Законы алгебры логики
39
название | для И | для ИЛИ |
двойного отрицания | | |
исключения третьего | | |
операции с константами | | |
повторения | | |
поглощения | | |
переместительный | | |
сочетательный | | |
распределительный | | |
законы де Моргана | | |
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Упрощение логических выражений
40
Шаг 1. Заменить операции ⊕→↔ на их выражения через И, ИЛИ и НЕ:
Шаг 2. Раскрыть инверсию сложных выражений по формулам де Моргана:
Шаг 3. Используя законы логики, упрощать выражение, стараясь применять закон исключения третьего.
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Упрощение логических выражений
41
раскрыли →
формула де Моргана
распределительный
исключения третьего
повторения
поглощения
Как сделать проще?
?
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Задачи (упрощение)
42
Какое логическое выражение равносильно выражению �A ∧ ¬(¬B ∨ C)?
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Логические уравнения
43
A=0, B=1, C – любое
2 решения: (0, 1, 0), (0, 1, 1)
или
A=1, B=0, C=1
Всего 3 решения!
!
K=1, L=1,
M и N – любые
4 решения
M=1, L=1, N=1,
K – любое
2 решения
K=1, L=1, M=0,
N – любое
2 решения
Всего 5 решений!
!
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Логические основы компьютеров
§ 22. Синтез логических выражений
44
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Синтез логических выражений
45
A | B | X |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 1 | 1 |
Шаг 1. Отметить строки в таблице, где X = 1.
Шаг 2. Для каждой из них записать логическое выражение, которое истинно только для этой строки.
Шаг 3. Сложить эти выражения и упростить результат.
распределительный
исключения третьего
исключения третьего
распределительный
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Синтез логических выражений (2 способ)
46
A | B | X |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 1 | 1 |
Шаг 1. Отметить строки в таблице, где X = 0.
Шаг 2. Для каждой из них записать логическое выражение, которое истинно только для этой строки.
Шаг 3. Сложить эти выражения и упростить результат, который равен .
Шаг 4. Сделать инверсию.
Когда удобнее применять 2-ой способ?
?
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Синтез логических выражений (3 способ)
47
A | B | X |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 1 | 1 |
Шаг 1. Отметить строки в таблице, где X = 0.
Шаг 2. Для каждой из них записать логическое выражение, которое ложно только для этой строки.
Шаг 3. Перемножить эти выражения и упростить результат.
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Синтез логических выражений
48
A | B | C | X |
0 | 0 | 0 | 1 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 0 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 |
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Синтез логических выражений (2 способ)
49
A | B | C | X |
0 | 0 | 0 | 1 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 0 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 |
3-й способ – самостоятельно.
!
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Логические уравнения
50
Запрещены 1!
Запрещены 0!
Запрещены 00** и **00!
0101
0110
0111
1001
1010
1011
1101
1110
1111
01, 10, 11
3
3
пары битов:
3
9 решений!
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Логические уравнения
51
16 – 9 = 7 решений!
4 переменные – всего 24 = 16 вариантов
для уравнения с 1 в правой части – 9 решений
соседние биты разные – биты чередуются
соседние биты одинаковые – все биты одинаковые
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Логические уравнения
52
«запрещена комбинация 10»
Решения: 000000, 000001, 000011, 000111,
001111, 011111, 111111
«после первой единицы все следующие биты – 1»
«все нули, потом все единицы»
Для уравнения с N переменными: N+1 решений.
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Системы логических уравнений
53
Уравнения независимы!
!
7 решений
6 решений
всего 7 × 6 = 42 решения!
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Системы логических уравнений
уравнение связи
54
7 решений
6 решений
X:
000000
000001
000011
000111
001111
011111
111111
Y:
00000
00001
00011
00111
01111
11111
7
7
7
7
4
4
всего 7 × 4 + 4 × 2
= 36 решений!
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Системы логических уравнений
55
Замена переменных:
…
Биты чередуются!
!
Решения: Z = 010101010,
Z = 101010101
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Системы логических уравнений
56
Решения: Z = 010101010,
Z = 101010101
0 и 1 дают по � 2 решения!
!
29 + 29 = 1024
9 битов
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Системы логических уравнений
57
Замена переменных:
Решения: 010101, 101010
«биты чередуются»
Ответ: 33+33=
54
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Логические основы компьютеров
§ 23. Предикаты и кванторы
58
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Предикаты
59
Предикат (логическая функция) – это утверждение, содержащее переменные.
Предикат-свойство – от одной переменной:
P(N) = «В городе N живут более 2 млн человек»
P(Москва) = 1
P(Якутск) = 0
Простое(x) = «x – простое число»
Спит(x) = «x всегда спит на уроке»
Предикат-отношение – от нескольких переменных:
Больше(x, y) = «x > y»
Живет(x, y) = «x живет в городе y»
Любит(x, y) = «x любит y»
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Предикаты и кванторы
60
Предикаты задают множества:
Предикаты, которые всегда истинны:
для всех вещественных чисел
«Для любого допустимого x утверждение P(x) истинно»:
высказывание
квантор
Квантор – знак, обозначающий количество.
А
(all – все)
E
(exists – существует)
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Кванторы
61
Какой квантор использовать?
« … моря соленые».
« … кошки серые».
« … числа чётные».
« … окуни – рыбы».
« … прямоугольники – квадраты».
« … квадраты – прямоугольники».
Истинно ли высказывание?
при
при
при
при
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Кванторы
62
Дано:
A = «Все люди смертны» = 1.
B = «Сократ – человек» = 1.
Доказать:
C = «Сократ смертен» = 1.
Доказательство:
P(x) = «x – человек» Q(x) = «x – смертен»
A = 1:
при «x =Сократ»
B = 1:
по свойствам импликации
Сократ
Сократ
Сократ
Сократ
A | B | А → B |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 1 | 1 |
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Несколько кванторов
63
– предикат от переменной y
Квантор связывает одну переменную:
– предикат от переменной x
Два квантора связывают две переменных:
– высказывание «для любого x существует y, при котором P(x,y)=1»
– высказывание «существует x, такой что при любом y верно P(x,y)=1»
Сравните два последних высказывания при:
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Отрицание
64
НЕ «для любого x выполняется P(x)» ⇔
«существует x, при котором не выполняется P(x)»
НЕ «существует x, при котором выполняется P(x)» ⇔
«для любого x не выполняется P(x)»
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Логические основы компьютеров
§ 24. Логические элементы компьютера
65
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Логические элементы компьютера
66
&
1
1
&
НЕ
И
ИЛИ
ИЛИ-НЕ
И-НЕ
значок инверсии
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Логические элементы компьютера
67
Любое логическое выражение можно реализовать на элементах И-НЕ или ИЛИ-НЕ.
&
И:
НЕ:
&
&
ИЛИ:
&
&
&
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Составление схем
68
последняя операция - ИЛИ
&
1
&
&
И
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Триггер (англ. trigger – защёлка)
69
Триггер – это логическая схема, способная хранить 1 бит информации (1 или 0). Строится на 2-х элементах ИЛИ-НЕ или на 2-х элементах И-НЕ.
1
1
основной
выход
вспомогательный
выход
reset, сброс
set, установка
обратные связи
S | R | Q | | режим |
0 | 0 | | | |
0 | 1 | | | |
1 | 0 | | | |
1 | 1 | | | |
хранение |
запрещен |
1
1
0
0
сброс |
установка 1 |
0
0
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Триггер – таблица истинности
70
1
1
обратные связи
S | R | Q | | режим |
0 | 0 | | | |
0 | 1 | | | |
1 | 0 | | | |
1 | 1 | | | |
хранение |
запрещен |
1
1
0
0
сброс |
установка 1 |
0
0
1
0
1
0
0
0
1
0
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Полусумматор
71
Полусумматор – это логическая схема, способная складывать два одноразрядных двоичных числа.
Σ
сумма
перенос
A | B | P | S |
0 | 0 | | |
0 | 1 | | |
1 | 0 | | |
1 | 1 | | |
0 0
0 1
0 1
1 0
&
1
&
&
Схема на 4-х элементах?
?
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Сумматор
72
Сумматор – это логическая схема, способная складывать два одноразрядных двоичных числа с переносом из предыдущего разряда.
Σ
сумма
перенос
перенос
A | B | C | P | S |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 0 | 1 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 1 |
1 | 0 | 1 | 1 | 0 |
1 | 1 | 0 | 1 | 0 |
1 | 1 | 1 | 1 | 1 |
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Многоразрядный сумматор
73
это логическая схема, способная складывать два �n-разрядных двоичных числа.
перенос
перенос
Σ
Σ
Σ
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Логические основы компьютеров
§ 25. Логические задачи
74
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Метод рассуждений
75
Задача 1. Министры иностранных дел России, США и Китая обсудили за закрытыми дверями проекты договора, представленные каждой из стран. Отвечая затем на вопрос журналистов: «Чей именно проект был принят?», министры дали такие ответы:
Россия — «Проект не наш (1), проект не США (2)»;
США — «Проект не России (1), проект Китая (2)»;
Китай — «Проект не наш (1), проект России (2)».
Один из них оба раза говорил правду; второй – оба раза говорил неправду, третий один раз сказал правду, а другой раз — неправду. Кто что сказал?
| (1) | (2) |
Россия | | |
США | | |
Китай | | |
проект России (?)
–
+
–
–
+
+
| (1) | (2) |
Россия | | |
США | | |
Китай | | |
проект США (?)
+
–
| (1) | (2) |
Россия | | |
США | | |
Китай | | |
проект Китая (?)
+
–
+
+
+
+
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Табличный метод
76
Задача 2. Дочерей Василия Лоханкина зовут Даша, Анфиса и Лариса. У них разные профессии и они живут в разных городах: одна в Ростове, вторая – в Париже и третья – в Москве. Известно, что
Париж | Ростов | Москва | | Певица | Балерина | Актриса |
| | | Даша | | | |
| | | Анфиса | | | |
| | | Лариса | | | |
0
0
0
В каждой строке и в каждом столбце может быть только одна единица!
!
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Использование алгебры логики
77
Задача 3. Следующие два высказывания истинны:
1. Неверно, что если корабль A вышел в море, то корабль C – нет.
2. В море вышел корабль B или корабль C, но не оба вместе.
Определить, какие корабли вышли в море.
… если корабль A вышел в море, то корабль C – нет.
1. Неверно, что если корабль A вышел в море, то корабль C – нет.
2. В море вышел корабль B или корабль C, но не оба вместе.
Решение:
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Использование алгебры логики
78
Задача 4. Когда сломался компьютер, его хозяин сказал «Память не могла выйти из строя». Его сын предположил, что сгорел процессор, а винчестер исправен. Мастер по ремонту сказал, что с процессором все в порядке, а память неисправна. В результате оказалось, что двое из них сказали все верно, а третий – все неверно. Что же сломалось?
Решение:
A – неисправен процессор, B – память, C – винчестер
хозяин:
сын:
мастер:
Если ошибся хозяин:
Если ошибся сын:
Если ошибся мастер:
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Использование алгебры логики
79
Задача 5. На вопрос «Кто из твоих учеников изучал логику?» учитель ответил: «Если логику изучал Андрей, то изучал и Борис. Однако неверно, что если изучал Семен, то изучал и Борис». Кто же изучал логику?
Решение:
A – логику изучал Андрей, B – Борис, C – Семен
«Если логику изучал Андрей, � то изучал и Борис».
1 способ:
«Неверно, что если изучал � Семен, то изучал и Борис».
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Использование алгебры логики
80
Задача 5. На вопрос «Кто из твоих учеников изучал логику?» учитель ответил: «Если логику изучал Андрей, то изучал и Борис. Однако неверно, что если изучал Семен, то изучал и Борис». Кто же изучал логику?
Решение:
A – логику изучал Андрей, B – Борис, C – Семен
«Если логику изучал Андрей, � то изучал и Борис».
2 способ:
«Неверно, что если изучал � Семен, то изучал и Борис».
С | B | С → B |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 1 | 1 |
A | B | A → B |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 1 | 1 |
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Использование алгебры логики
81
Задача 6. Суд присяжных пришел к таким выводам:
Виновен ли Аськин?
Решение:
A – виновен Аськин, B – Баськин, C – Сенькин
«Если Аськин не виновен или Баськин � виновен, то виновен Сенькин».
«Если Аськин не виновен, то � Сенькин не виновен».
Аськин виновен
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Использование алгебры логики
82
Задача 6б. Суд присяжных пришел к таким выводам:
Виновен ли Баськин?
Решение:
A – виновен Аськин, B – Баськин, C – Сенькин
Не получили противоречия: возможно, что и виновен
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Использование алгебры логики
83
Задача 6в. Суд присяжных пришел к таким выводам:
Виновен ли Сенькин?
Решение:
A – виновен Аськин, B – Баськин, C – Сенькин
Не получили противоречия: возможно, что и виновен
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Логические основы компьютеров
Задачи ЕГЭ
84
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Задачи ЕГЭ
85
Для какого из указанных значений X истинно высказывание ¬((X > 2)→(X > 3))?
1) 1 2) 2 3) 3 4) 4
Укажите, какое логическое выражение равносильно выражению A ∧ ¬(¬B ∨ C).
1) ¬A ∨ ¬B ∨ ¬C
2) A ∨ ¬B ∨ ¬C
3) A ∧ B ∧ ¬C
4) A ∧ ¬B ∧ C
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Задачи ЕГЭ (2)
86
Каково наибольшее целое число X, при котором истинно высказывание
(50 < X·X) → (50 > (X+1)·(X+1))
В целых числах:
A
B
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Задачи ЕГЭ (6)
87
Перед началом Турнира Четырех болельщики высказали следующие предположения по поводу своих кумиров:
А) Макс победит, Билл – второй;
В) Билл – третий, Ник – первый;
С) Макс – последний, а первый – Джон.
Когда соревнования закончились, оказалось, что каждый из болельщиков был прав только в одном из своих прогнозов. Какое место на турнире заняли Джон, Ник, Билл, Макс? (В ответе перечислите подряд без пробелов места участников в указанном порядке имен.)
| A | B | C |
Джон | | | 1 |
Ник | | 1 | |
Билл | 2 | 3 | |
Макс | 1 | | 4 |
2
3124
1
4
Ответ:
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Задачи ЕГЭ (7)
88
На одной улице стоят в ряд 4 дома, в каждом из них живет по одному человеку. Их зовут Василий, Семен, Геннадий и Иван. Известно, что все они имеют разные профессии: скрипач, столяр, охотник и врач. Известно, что
(1) Столяр живет правее охотника.
(2) Врач живет левее охотника.
(3) Скрипач живет с краю.
(4) Скрипач живет рядом с врачом.
(5) Семен не скрипач и не живет рядом со скрипачом.
(6) Иван живет рядом с охотником.
(7) Василий живет правее врача.
(8) Василий живет через дом от Ивана.
Определите, кто где живет, и запишите начальные буквы имен жильцов всех домов слева направо. Например, если бы в домах жили (слева направо) Кирилл, Олег, Мефодий и Пафнутий, ответ был бы КОМП.
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Задача Эйнштейна
89
Условие: Есть 5 домов разного цвета, стоящие в ряд. В каждом доме живет по одному человеку отличной от другого национальности. Каждый жилец пьет только один определенный напиток, курит определенную марку сигарет и держит животное. Никто из пяти человек не пьет одинаковые напитки, не курит одинаковые сигареты и не держит одинаковых животных.
Известно, что:
Вопрос: У кого живет рыба?
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Конец фильма
90
ПОЛЯКОВ Константин Юрьевич
д.т.н., учитель информатики
ГБОУ СОШ № 163, г. Санкт-Петербург
ЕРЕМИН Евгений Александрович
к.ф.-м.н., доцент кафедры мультимедийной дидактики и ИТО ПГГПУ, г. Пермь
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru
Источники иллюстраций
91
Логические основы компьютеров, 10 класс
© К.Ю. Поляков, Е.А. Ерёмин, 2013 http://kpolyakov.spb.ru