Почему таблица истинности для операции «Не» содержит две строки, а таблицы для других
PYTHONнапишите функцию которая определяет есть ли цифра в строке переданной функции функция должна вернуть значение типа Boolнапишите функцию которая … определяет есть ли буква в строке переданной функции функция должна вернуть значение типа Boolя сделал так но не работает в чем моя ошибка def number(x): print(x, x.isdigit())number (‘дай 5’)
Протокол матча. Помогите, пожалуйста, на языке Python В последнее время в одной из школ Н. Новгорода, а также на одном из факультетов ННГУ стала очень … популярна игра в настольный теннис. Игроки часто сталкиваются со следующей проблемой: довольно трудно уследить за всем ходом матча и при этом не сбиться со счёта, поэтому очень хотелось бы иметь программу, подсчитывающую счёт. Напишите программу, которая по данному протоколу матча восстановит итоговый счёт. Протокол состоит из последовательности следующих событий: service, net, out, goal, return, eom. События обозначают следующее: * service — подача (при этом игрок ударяет по мячу). service — всегда первое событие во входном файле. После него могут следовать net, out, goal, return. * net — мяч ударяется о половину поля того игрока, который ударял по мячу последним, слишком много раз. Игрок, который ударял по мячу последним, проигрывает розыгрыш. После этого события могут идти service или eom. * out — мяч уходит в аут. Игрок, который ударял по мячу последним, проигрывает розыгрыш. После этого события могут идти service или eom. * goal — игрок, который ударял по мячу последним, забивает гол (т.,е. выигрывает розыгрыш). Далее может быть service или eom. * return — игрок отбивает мяч, ударяя по нему (игроки ударяют по мячу по очереди). Далее может быть net, out, goal, return. * eom — матч окончен. Это всегда последнее событие. Когда игрок выигрывает розыгрыш, ему начисляется очко. Когда игрок проигрывает розыгрыш, очко начисляется его противнику. Подачи подаются по пять штук, т.,е. первые пять подач подаёт первый игрок, следующие пять — другой и т.д. Полное количество подач может быть не кратным пяти, в таком случае последняя серия подач будет короче пяти штук. Конечно, в реальном матче может произойти ситуация, которую невозможно описать этими событиями, но ваша программа должна считать, что весь матч описывается данными во входном файле событиями. Входные данные Во входном файле находится список событий. События расположены по одному на строке без пробелов. Последовательность событий удовлетворяет всему, что было сказано выше; пустых строк во входном файле нет (кроме, возможно, строк после события eom). Всего событий не более 50000. Выходные данные В выходной файл выведите два числа: очки того, кто подавал первым, потом — очки его противника. Пример #1 Входные данные service goal service out service net service return return return out service return goal service goal eom Выходные данные 2 4 Пример #2 Входные данные service out eom Выходные данные 0 1
что будет если установить wnindows на диск с файлами? удалятся они или нет?
Инфрмация НЕ должна быть
Здравствуйте, помогите пожалуйста с решением задачи, желательно с обЬяснением: Дана постфиксная (обратная польская) запись арифметическоговыражения: x … a + x * b + x * c + x * d + x * e +. Постройте бинарное дерево, задающее этовыражение, покажите порядок обхода вершин дерева, позволяющий вычислить значениеэтого выражения, вычислите значение этого выражения для x=2, a=1, b=2, c=3, d=4, e=5.
Компакт-диск (CD) хранит около 4,8 x 109 бит информации на площади 96см2. Эта информация записана в виде двоичного кода (т.н. каждый бит — это или 1, … или 0). Сколько CD-дисков потребуется, чтобы записать информацию, хранящуюся в геноме человека?
дан текст, состоящий из двух символов, принимающих значения в диапазоне «a»-«z» или «0»-«9», сколько бит необходимо для записи такого текста минимальн … о?
Construct 2 работа с .exe Я хотел спросить на счёт работы с .exe файлами 1:Возможно сделать так что бы скомпелированный проект в Construct 2 мог созда … вать сторонние exe файлы? 2:Можно ли сделать так что бы можно было указать в скомпелированной программе указать что бы сохранялась допустим картинка которая была выбрана через FileChoose? 3:Можно ли что бы в скомпл. Проэкт заканчивался выборочно exe файл опять таки же через filechoose или другой плагин и потом открывался? *Буду благодарен за ответы
Плиииз!!! Срочно! Помогите.
Сколько существует различных четырехзначных чисел записанных в восьмеричной системе счисления в записи которых есть ровно две одинаковые цифры причем … стоящие рядом? Уже два часа голову ломаю…
Логика и компьютер. Логические операции
Содержание урока
§18. Логика и компьютер§19. Логические операцииВведение
Операция «НЕ»
Операция «И»
Операция «ИЛИ»
Операция «исключающее ИЛИ»
Импликация
Эквивалентность
Другие логические операции
Логические выражения
Вопросы и задания, Задачи
§20. Диаграммы§19. Логические операции
Вопросы и задания
Задачи
1. Даны два высказывания: А — «В Африке водятся жирафы» и В — «В Мурманске идёт снег». Постройте из них различные сложные высказывания.
3. Что такое таблица истинности?
4. Почему таблица истинности для операции «НЕ» содержит две строки, а таблицы для других изученных операций — четыре? Сколько строк в таблице истинности выражения с тремя переменными? С четырьмя? С пятью?
5. В каком порядке обычно записываются значения переменных в таблице истинности? Зачем это нужно?
6. Когда истинно высказывание А И В? А ИЛИ В?
7. Какие электрические схемы можно использовать для иллюстрации операций «И» и «ИЛИ»?
8. Какие знаки применяют для обозначения операций «НЕ», «И», «ИЛИ»?
10. В чём различие арифметического и логического сложения?
11. Сколько можно определить различных логических функций с двумя переменными? С тремя переменными?
12. Чем отличается операция «исключающее ИЛИ» от операции «ИЛИ»?
13. Почему операция «исключающее ИЛИ» называется сложением по модулю 2?
14. Как записать выражение А ⊕ В с помощью базового набора операций (НЕ, И, ИЛИ)?
15. Как можно доказать или опровергнуть логическое равенство?
16. Какими интересными свойствами обладает операция «исключающее ИЛИ»?
18. Какое свойство операции «исключающее ИЛИ» позволяет использовать ее для простейшего шифрования?
19. Чем отличается смысл высказывания «если А, то В» в обычной речи и в математической логике?
20. Запишите в виде логической формулы высказывание «Если утюг горячий, то лоб холодный».
21. Запишите в виде логической формулы высказывание «Неверно, что если утюг горячий, то лоб холодный». Можно ли в этом случае сразу сказать, каким является утюг и каким — лоб?
22. Как выразить импликацию через операции «НЕ» и «ИЛИ»? Докажите полученное тождество.
24. Чем интересны операции «штрих Шеффера» и «стрелка Пирса»?
25. Докажите тождества, позволяющие представить базовые логические операции через штрих Шеффера. Попробуйте построить и доказать аналогичные тождества для операции «стрелка Пирса».
26. Что такое формализация?
27. В каком порядке выполняются действия в логических выражениях?
28. Что можно сделать для того, чтобы изменить естественный порядок действий?
29. Какие операции называются бинарными и унарными? Приведите примеры унарных и бинарных операций в математике.
30. Поясните разницу между терминами «логическое выражение» и «логическая функция».
а) логическое выражение;
б) логическую функцию?
32. Что такое вычислимое логическое выражение?
33. Что такое тавтология? Противоречие? Приведите примеры.
34. Что такое равносильные выражения?
Подготовьте сообщение
а) «Логическая операция «Штрих Шеффера”»
б) «Логическая операция “Стрелка Пирса»»
в) «Шифрование с помощью операции «исключающее ИЛИ»»
Задачи
1. Составьте деревья для вычисления логических выражений и табли цы истинности этих выражений:
2. Составьте деревья для вычисления логических выражении и табли цы истинности этих выражений:
3. Символом F обозначено одно из указанных ниже логических выражений от трёх аргументов: X, У, Z. Дан фрагмент таблицы истинности выражения F. Какие из этих выражений могут соответствовать F?
4. Для предыдущего задания определите, сколько различных логических функций соответствует заданной частичной таблице истинности.
5. Задано 5 строк таблицы истинности некоторого логического выражения с тремя переменными. Сколько различных логических функций ей соответствуют?
6. Символом F обозначено одно из указанных ниже логических выражений от трёх аргументов: X, У, Z. Дан фрагмент таблицы истинности выражения F. Какие из этих выражений могут соответствовать F7
7. Символом F обозначено одно из указанных ниже логических выра жений от трёх аргументов: X, У, Z. Дан фрагмент таблицы истин ности выражения F. Какие из этих выражений могут соответство вать F?
8. Символом F обозначено одно из указанных ниже логических выражений от трех аргументов: X, Y, Z. Дан фрагмент таблицы истинности выражения F. Какие из этих выражений могут соответствовать F?
9. Символом F обозначено одно из указанных ниже логических выражений от трех аргументов: X, Y, Z. Дан фрагмент таблицы истинности выражения F. Какие из этих выражений могут соответствовать F?
10. Определите значение логического выражения (X > 2) → (X > 3) для X = 1, 2, 3, 4.
11. Определите значение логического выражения ((X < 5) → (Х < 3)) • ((Х < 2) → (Х < 1)) для X = 1, 2, 3, 4.
12. Определите значение логического выражения ((X > 3) + (Х < 3)) → (Х < 1) для X = 1, 2, 3, 4.
13. Определите значение логического выражения ((X < 4) → (Х < 3)) • ((X < 3) → (Х < 1)) для X = 1, 2, 3, 4.
14. Определите значение логического выражения (X • (X — 8) < 2 • X — 25) → (X > 7) для X = 4, 5, 6, 7.
15. Найдите все целые значения X, при которых логическое выражение (X > 2) → (X > 5) ложно.
16. Найдите все целые значения X, при которых логическое выражение ((X > 0) + (X > 4)) → (X > 4) ложно.
17. Автопилот может работать, если исправен главный бортовой компьютер или два вспомогательных. Выполните формализацию и запишите логические формулы для высказываний «Автопилот работоспособен» и «Автопилот неработоспособен».
18. Каково наибольшее целое положительное число X, при котором истинно утверждение: (Х(Х + 3) > Х2 + 9) → (Х(Х + 2) ≤ Х2 + 11)?
19. Каково наибольшее целое положительное число X, при котором истинно утверждение: (121 < Х2) → (Х > Х + 5)?
20. Каково наибольшее целое положительное число X, при котором ложно утверждение: (X (X + 6) + 9 > 0) → (X2 > 45)?
21. Каково наибольшее целое положительное число X, при котором истинно утверждение: (Х2 -1 > 100) → (Х(Х — 1) < 100)?
22. Каково наибольшее целое положительное число X, при котором ложно утверждение: (7Х -3 < 75) → (Х(Х — 1) > 65)?
23. Известно, что для чисел А, В и С истинно утверждение ((С < А) + (С < В)) • ((С + 1) < А) • ((С + 1) < В).
а) Чему равно С, если А = 25 и В = 48?
б) Чему равно С, если А = 45 и В = 18?
24. Известно, что для чисел А, В и С истинно утверждение (А = В) • ((В < А) → (2С > А)) • ((А < В) → (А > 2С)).
Чему равно А, если С = 10 и В = 22?
Следующая страница §20. Диаграммы
Cкачать материалы урока
Документ зачетная работа 10 класс по теме «Системы счисления»
Сколько страниц (в тысячах) будет найдено по запросу Ростов & Орёл & Курск?
Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения запросов.
Зачетная работа
По теме: «Логические основы компьютера»
Билет № 8
В таблице приведены запросы к поисковому серверу. Расположите обозначения запросов в порядке возрастания количества страниц, которые найдет поисковый сервер по каждому запросу.
А) физкультура
Б) физкультура & подтягивания & отжимания
В) физкультура & подтягивания
Г) физкультура | фитнесс
Изобразите запросы в виде диаграмм Эйлера-Венна.
Зачетная работа
По теме: «Логические основы компьютера»
Билет № 9
В таблице приведены запросы и количество страниц, которые нашел поисковый сервер по этим запросам в некотором сегменте Интернета:
Сколько страниц (в тысячах) будет найдено по запросу шахматы?
Зачетная работа
По теме: «Логические основы компьютера»
Билет № 10
В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для логической операции «И» — символ «&».
В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет.
Какое количество страниц (в тысячах) будет найдено по запросу Выпечка?
Считается, что все запросы выполнялись практически одновременно, так что набор страниц, содержащих все искомые слова, не изменялся за время выполнения
запросов.
Таблица истинности
А таблица истинности это математическая таблица используется в логика- особенно в связи с Булева алгебра, логические функции, и пропозициональное исчисление- в котором излагаются функциональные ценности логических выражения по каждому из их функциональных аргументов, то есть для каждого комбинация значений, взятых их логическими переменными.[1] В частности, таблицы истинности могут использоваться, чтобы показать, истинно ли пропозициональное выражение для всех допустимых входных значений, то есть логически действительный.
В таблице истинности есть один столбец для каждой входной переменной (например, P и Q) и один последний столбец, в котором показаны все возможные результаты логической операции, которую представляет таблица (например, P XOR Q). Каждая строка таблицы истинности содержит одну возможную конфигурацию входных переменных (например, P = true Q = false) и результат операции для этих значений. См. Примеры ниже для дальнейшего пояснения. Людвиг Витгенштейн обычно приписывают изобретение и популяризацию таблицы истинности в его Логико-философский трактат, который был завершен в 1918 году и опубликован в 1921 году.[2] Такая система была также независимо предложена в 1921 г. Эмиль Леон Пост.[3] Еще более ранняя итерация таблицы истинности также была обнаружена в неопубликованных рукописях автора Чарльз Сандерс Пирс с 1893 г., опередив обе публикации почти на 30 лет.[4]
Унарные операции
Есть 4 унарные операции:
- Всегда правда
- Никогда не правда, унарный ложь
- Унарный Личность
- Унарный отрицание
Логическая правда
Выходное значение всегда истинно, независимо от входного значения p.
п | Т |
---|---|
Т | Т |
F | Т |
Логическая ложь
Выходное значение никогда не бывает истинным: то есть всегда ложно, независимо от входного значения p.
п | F |
---|---|
Т | F |
F | F |
Логическая идентичность
Логическая идентичность является операция на одной логическое значение p, для которого значение на выходе остается p.
Таблица истинности для оператора логической идентичности выглядит следующим образом:
п | п |
---|---|
Т | Т |
F | F |
Логическое отрицание
Логическое отрицание является операция на одной логическое значение, обычно значение предложение, что дает значение истинный если его операнд ложный и значение ложный если его операнд истинен.
Таблица истинности для НЕ п (также записывается как ¬p, Np, Fpq, или же ~ р) как следует:
п | ¬p |
---|---|
Т | F |
F | Т |
Бинарные операции
Есть 16 возможных функции истины из двух бинарные переменные:
Таблица истинности для всех бинарных логических операторов
Вот расширенная таблица истинности, дающая определения всех возможных функций истинности двух булевых переменных P и Q:[примечание 1]
п | q | F0 | НИ1 | ↚2 | ¬p3 | ↛4 | ¬q5 | XOR6 | NAND7 | И8 | XNOR9 | q10 | →11 | п12 | ←13 | ИЛИ ЖЕ14 | Т15 | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Т | Т | F | F | F | F | F | F | F | F | Т | Т | Т | Т | Т | Т | Т | Т | ||
Т | F | F | F | F | F | Т | Т | Т | Т | F | F | F | F | Т | Т | Т | Т | ||
F | Т | F | F | Т | Т | F | F | Т | Т | F | F | Т | Т | F | F | Т | Т | ||
F | F | F | Т | F | Т | F | Т | F | Т | F | Т | F | Т | F | Т | F | Т | ||
Com | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||||
Assoc | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||||
Adj | F0 | НИ1 | ↛4 | ¬q5 | ↚2 | ¬p3 | XOR6 | NAND7 | И8 | XNOR9 | п12 | ←13 | q10 | →11 | ИЛИ ЖЕ14 | Т15 | |||
Отрицательный | Т15 | ИЛИ ЖЕ14 | ←13 | п12 | →11 | q10 | XNOR9 | И8 | NAND7 | XOR6 | ¬q5 | ↛4 | ¬p3 | ↚2 | НИ1 | F0 | |||
Двойной | Т15 | NAND7 | →11 | ¬p3 | ←13 | ¬q5 | XNOR9 | НИ1 | ИЛИ ЖЕ14 | XOR6 | q10 | ↚2 | п12 | ↛4 | И8 | F0 | |||
L id | F | F | Т | Т | Т, Ж | Т | F | ||||||||||||
Избавлять | F | F | Т | Т | Т, Ж | Т | F |
куда
- T = верно.
- F = ложь.
- В Com строка указывает, есть ли у оператора op, является коммутативный — P op Q = Q op P.
- В Assoc строка указывает, есть ли у оператора op, является ассоциативный — (P op Q) op R = P op (Q op R).
- В Adj строка показывает оператора op2 такой, что P op Q = Q op2 P
- В Neg строка показывает оператора op2 такой, что P оп Q = ¬ (Q op2 P)
- В Двойной строка показывает двойная операция получается заменой T на F и AND на OR.
- В L id строка показывает оператор левые личности если есть — значения я такой, что I op Q = Q.
- В Избавлять строка показывает оператор правильные личности если есть — значения я такой, что P op I = P.[заметка 2]
Четыре комбинации входных значений для p, q считываются по строкам из таблицы выше. Функция вывода для каждой комбинации p, q может быть считана по строкам из таблицы.
Ключ:
Следующая таблица ориентирована по столбцам, а не по строкам. Здесь четыре столбца, а не четыре строки, для отображения четырех комбинаций p, q в качестве входных данных.
п: Т Т F F
q: Т Ф Т Ф
В этом ключе 16 строк, по одной строке для каждой двоичной функции двух двоичных переменных p, q. Например, в строке 2 этого ключа значение Конверс без импликации (‘↚{ displaystyle nleftarrow}’) является исключительно T для столбца, обозначенного уникальной комбинацией p = F, q = T; в то время как в строке 2 значение этого ‘↚{ displaystyle nleftarrow}’операция F для трех оставшихся столбцов p, q. Выходная строка для ↚{ displaystyle nleftarrow} таким образом
2: F F T F
и 16-рядный[5] ключ
[5] | оператор | Название операции | ||
---|---|---|---|---|
0 | (F F F F) (p, q) | ⊥ | ложный, Opq | Противоречие |
1 | (F F F T) (p, q) | НИ | п ↓ q, Xpq | Логическое ИЛИ |
2 | (F F T F) (p, q) | ↚ | п ↚ q, Мпк | Конверс без импликации |
3 | (F F T T) (p, q) | ¬p, ~ р | ¬p, Np, Fpq | Отрицание |
4 | (F T F F) (p, q) | ↛ | п ↛ q, Lpq | Существенное отсутствие импликации |
5 | (F T F T) (p, q) | ¬q, ~ q | ¬q, Nq, Гпк | Отрицание |
6 | (F T T F) (p, q) | XOR | п ⊕ q, Jpq | Исключительная дизъюнкция |
7 | (F T T T) (p, q) | NAND | п ↑ q, Dpq | Логическая И-НЕ |
8 | (Т F F F) (p, q) | И | п ∧ q, КПК | Логическое соединение |
9 | (Т F F T) (p, q) | XNOR | п Если и только если q, Epq | Логическая двусмысленность |
10 | (Т Ф Т Ф) (p, q) | q | q, Hpq | Функция проекции |
11 | (Т Ф Т Т) (p, q) | п → q | если п тогда q, Cpq | Материальное значение |
12 | (Т Т F F) (p, q) | п | п, IPQ | Функция проекции |
13 | (Т Т Ф Т) (p, q) | п ← q | п если q, Бпк | Обратное значение |
14 | (Т Т Т Ф) (p, q) | ИЛИ ЖЕ | п ∨ q, Apq | Логическая дизъюнкция |
15 | (Т Т Т Т) (п, д) | ⊤ | истинный, Впк | Тавтология |
Логические операторы также можно визуализировать с помощью Диаграммы Венна.
Логическое соединение (И)
Логическое соединение является операция на двух логические значения, обычно значения двух предложения, что дает значение истинный если оба его операнда верны.
Таблица истинности для p И q (также записывается как p ∧ q, КПК, p & q, или же п ⋅{ displaystyle cdot} q) как следует:
п | q | п ∧ q |
---|---|---|
Т | Т | Т |
Т | F | F |
F | Т | F |
F | F | F |
В терминах обычного языка, если оба п и q верны, то союз п ∧ q правда. Для всех остальных присвоений логических значений п и чтобы q соединение п ∧ q ложно.
Также можно сказать, что если п, тогда п ∧ q является q, иначе п ∧ q является п.
Логическая дизъюнкция (ИЛИ)
Логическая дизъюнкция является операция на двух логические значения, обычно значения двух предложения, что дает значение истинный если хотя бы один из его операндов истинен.
Таблица истинности для p ИЛИ q (также записывается как p ∨ q, Apq, p || q, или же р + д) как следует:
п | q | п ∨ q |
---|---|---|
Т | Т | Т |
Т | F | Т |
F | Т | Т |
F | F | F |
Указано на английском языке, если п, тогда п ∨ q является п, иначе п ∨ q является q.
Логическое следствие
Логический вывод и материальный условный оба связаны с операция на двух логические значения, обычно значения двух предложения, что дает значение ложный если первый операнд истинен, а второй операнд ложь, и значение истинный иначе.
Таблица истинности, связанная с логическим следствием p влечет q (обозначается как p ⇒ q, или реже Cpq) как следует:
п | q | п ⇒ q |
---|---|---|
Т | Т | Т |
Т | F | F |
F | Т | Т |
F | F | Т |
Таблица истинности, связанная с материальным условным если p, то q (обозначается как p → q) как следует:
п | q | п → q |
---|---|---|
Т | Т | Т |
Т | F | F |
F | Т | Т |
F | F | Т |
Также может быть полезно отметить, что p ⇒ q и p → q эквивалентны ¬p ∨ q.
Логическое равенство
Логическое равенство (также известный как двухусловный или же эксклюзивный ни) является операция на двух логические значения, обычно значения двух предложения, что дает значение истинный если оба операнда ложны или оба операнда истинны.
Таблица истинности для p XNOR q (также записывается как p ↔ q, Epq, p = q, или же p ≡ q) как следует:
п | q | п ↔ q |
---|---|---|
Т | Т | Т |
Т | F | F |
F | Т | F |
F | F | Т |
Итак, p EQ q истинно, если p и q имеют одинаковые значение истины (оба истинны или оба ложны) и ложь, если они имеют разные значения истинности.
Исключительная дизъюнкция
Исключительная дизъюнкция является операция на двух логические значения, обычно значения двух предложения, что дает значение истинный если один, но не оба его операнда истинны.
Таблица истинности для p XOR q (также записывается как Jpq, или же p ⊕ q) как следует:
п | q | п ⊕ q |
---|---|---|
Т | Т | F |
Т | F | Т |
F | Т | Т |
F | F | F |
Для двух предложений XOR также можно записать как (p ∧ ¬q) ∨ (¬p ∧ q).
Логическая И-НЕ
В логическая NAND является операция на двух логические значения, обычно значения двух предложения, что дает значение ложный если оба его операнда верны. Другими словами, он дает значение истинный если хотя бы один из его операндов ложен.
Таблица истинности для p NAND q (также записывается как п ↑ q, Dpq, или же p | q) как следует:
п | q | п ↑ q |
---|---|---|
Т | Т | F |
Т | F | Т |
F | Т | Т |
F | F | Т |
Часто бывает полезно выразить логическую операцию как составную операцию, то есть как операцию, построенную или составленную из других операций. Возможны многие такие композиции, в зависимости от операций, которые считаются базовыми или «примитивными», и операций, которые принимаются как составные или «производные».
В случае логического И-НЕ оно явно выражается как соединение НЕ и И.
Отрицание союза: ¬ (п ∧ q), и дизъюнкция отрицаний: (¬п) ∨ (¬q) можно представить в виде таблицы:
п | q | п ∧ q | ¬(п ∧ q) | ¬п | ¬q | (¬п) ∨ (¬q) |
---|---|---|---|---|---|---|
Т | Т | Т | F | F | F | F |
Т | F | F | Т | F | Т | Т |
F | Т | F | Т | Т | F | Т |
F | F | F | Т | Т | Т | Т |
Логическое ИЛИ
В логическое ИЛИ является операция на двух логические значения, обычно значения двух предложения, что дает значение истинный если оба его операнда ложны. Другими словами, он дает значение ложный если хотя бы один из его операндов истинен. ↓ также известен как Стрела Пирса после его изобретателя, Чарльз Сандерс Пирс, и является Единственный достаточный оператор.
Таблица истинности для p NOR q (также записывается как p ↓ q, или же Xpq) как следует:
п | q | п ↓ q |
---|---|---|
Т | Т | F |
Т | F | F |
F | Т | F |
F | F | Т |
Отрицание дизъюнкции ¬ (п ∨ q), и соединение отрицаний (¬п) ∧ (¬q) можно представить в виде таблицы:
п | q | п ∨ q | ¬(п ∨ q) | ¬п | ¬q | (¬п) ∧ (¬q) |
---|---|---|---|---|---|---|
Т | Т | Т | F | F | F | F |
Т | F | Т | F | F | Т | F |
F | Т | Т | F | Т | F | F |
F | F | F | Т | Т | Т | Т |
Проверка табличных выводов для NAND и NOR при каждом присвоении логических значений функциональным аргументам п и q, производит идентичные образцы функциональных значений для ¬ (п ∧ q) как для (¬п) ∨ (¬q), а для ¬ (п ∨ q) как для (¬п) ∧ (¬q). Таким образом, первое и второе выражения в каждой паре логически эквивалентны и могут заменять друг друга во всех контекстах, которые относятся исключительно к их логическим значениям.
Эта эквивалентность — одна из Законы де Моргана.
Приложения
Таблицы истинности могут использоваться для доказательства многих других логические эквивалентности. Например, рассмотрим следующую таблицу истинности:
Это демонстрирует тот факт, что п⇒q{ displaystyle p Rightarrow q} является логически эквивалентный к ¬п∨q{ Displaystyle lnot p lor q}.
Таблица истинности для наиболее часто используемых логических операторов
Вот таблица истинности, которая дает определения 6 наиболее часто используемых из 16 возможных функций истинности двух булевых переменных P и Q:
куда
- Т
- истинный
- F
- ложный
- ∧{ displaystyle land}
- И (логическое соединение)
- ∨{ displaystyle lor}
- ИЛИ ЖЕ (логическая дизъюнкция)
- ∨_{ displaystyle { underline { lor}}}
- XOR (Эксклюзивный или)
- ∧_{ displaystyle { underline { land}}}
- XNOR (исключая ни)
- ⇒{ displaystyle Rightarrow}
- условное «если-то»
- ⇐{ displaystyle Leftarrow}
- условное «тогда-если»
- ⇔{ displaystyle Leftrightarrow}
- двусмысленный «если и только если».
Сжатые таблицы истинности для бинарных операторов
Для бинарных операторов также используется сжатая форма таблицы истинности, где заголовки строк и столбцов определяют операнды, а ячейки таблицы определяют результат. Например, Логическая логика использует это сокращенное обозначение таблицы истинности:
Это обозначение полезно, особенно если операции коммутативны, хотя можно дополнительно указать, что строки являются первым операндом, а столбцы — вторым операндом. Это сжатое обозначение особенно полезно при обсуждении многозначных расширений логики, поскольку оно значительно сокращает комбинаторный взрыв количества строк, необходимых в противном случае. Он также обеспечивает быстро узнаваемую характерную «форму» распределения значений в таблице, которая может помочь читателю быстрее понять правила.
Таблицы истинности в цифровой логике
Таблицы истинности также используются для определения функции справочные таблицы оборудования (LUT) в цифровая логическая схема.п значения (или строки в указанном выше табличном формате), полностью определяя логическую функцию для LUT. Представляя каждое логическое значение как кусочек в двоичное число, значения таблицы истинности могут быть эффективно закодированы как целое число ценности в автоматизация проектирования электроники (EDA) программного обеспечения. Например, 32-битное целое число может кодировать таблицу истинности для LUT с максимум 5 входами.
При использовании целочисленного представления таблицы истинности выходное значение LUT может быть получено путем вычисления битового индекса k на основе входных значений LUT, и в этом случае выходным значением LUT является k-й бит целого числа. Например, чтобы оценить выходное значение LUT с учетом множество из п логические входные значения, битовый индекс выходного значения таблицы истинности можно вычислить следующим образом: если яй ввод верен, пусть Vя=1{ displaystyle V_ {i} = 1}, иначе пусть Vя=0{ displaystyle V_ {i} = 0}. {n}}.
Таблицы истинности — это простой и понятный способ кодирования логических функций, однако с учетом экспоненциальный рост по размеру по мере увеличения количества входов они не подходят для функций с большим количеством входов. Другими представлениями, которые более эффективно используют память, являются текстовые уравнения и диаграммы бинарных решений.
Применение таблиц истинности в цифровой электронике
В цифровой электронике и информатике (области прикладной логической инженерии и математики) таблицы истинности могут использоваться для сведения базовых логических операций к простым корреляциям входов и выходов без использования логические ворота или код. Например, двоичное сложение может быть представлено таблицей истинности:
A B | C R1 1 | 1 01 0 | 0 10 1 | 0 10 0 | 0 0 где A = первый операнд B = второй операнд C = перенос R = результат
Эта таблица истинности читается слева направо:
- Пара значений (A, B) равна паре значений (C, R).
- Или, в этом примере, A плюс B равен результату R, с переносом C.
Обратите внимание, что эта таблица не описывает логические операции, необходимые для реализации этой операции, а просто определяет функцию входов для выходных значений.
Что касается результата, этот пример можно арифметически рассматривать как двоичное сложение по модулю 2 и как логически эквивалентный бинарной логической операции «исключающее ИЛИ» (исключительное дизъюнкция).
В этом случае его можно использовать только для очень простых входов и выходов, таких как 1 и 0. Однако, если количество типов значений, которые можно иметь на входах, увеличивается, размер таблицы истинности увеличивается.
Например, в операции сложения нужно два операнда, A и B. Каждый может иметь одно из двух значений, ноль или один. Количество комбинаций этих двух значений равно 2 × 2 или четырем. Таким образом, результатом является четыре возможных выхода C и R. Если использовать базу 3, размер увеличится до 3 × 3, или девяти возможных выходов.
Первый пример «сложения» выше называется полусумматором. Полный сумматор — это когда перенос из предыдущей операции предоставляется в качестве входных данных для следующего сумматора. Таким образом, таблица истинности из восьми строк потребуется для описания полный сумматорлогика:
A B C * | C R0 0 0 | 0 00 1 0 | 0 11 0 0 | 0 11 1 0 | 1 00 0 1 | 0 10 1 1 | 1 01 0 1 | 1 01 1 1 | 1 1 То же, что и предыдущее, но ... C * = Перенести из предыдущего сумматора
История
Исследование Ирвинга Анеллиса показывает, что К.С. Пирс по-видимому, был первым логиком (в 1893 г.), который изобрел матрицу таблицы истинности.[4][6] Из резюме его статьи:
В 1997 году Джон Шоски обнаружил на оборотная сторона страницы распечатанной стенограммы Бертран РасселЛекция 1912 года по матрицам таблицы истинности «Философия логического атомизма». Матрица отрицания принадлежит Расселу, рядом с ней находится матрица материального подтекста, созданная Людвигом Витгенштейном. Показано, что неопубликованная рукопись, идентифицированная как составленная Пирсом в 1893 году, включает матрицу таблицы истинности, которая эквивалентна матрице материального значения, обнаруженной Джоном Шоски. В публикацию Пирса вошли работы Кристин Лэдд (1881): Доктор философии Пирса. студентка Кристин Лэдд-Франклин нашла таблицу истинности в Логико-философский трактат Предложение 5.101, на 40 лет раньше, чем Витгенштейн. Кристин Лэдд (1881 г.), «Об алгебре логики», стр.62., Исследования по логике, Изд. К. С. Пирса, 1883 г.
Процитированные работы
- Бохенский, Юзеф Мария (1959), Краткое изложение математической логики, перевод с французского и немецкого изданий Отто Берда, Дордрехт, Южная Голландия: D. Reidel.
- Эндертон, Х. (2001). Математическое введение в логику, второе издание, Нью-Йорк: Harcourt Academic Press. ISBN 0-12-238452-0
- Куайн, W.V. (1982), Методы логики, 4-е издание, Кембридж, Массачусетс: Издательство Гарвардского университета.
внешняя ссылка
Анализ приложения логических операций к криптографическим преобразованиям средств обеспечения информационной безопасности
АННОТАЦИЯ
В статье рассматривается решение задачи определения логических операций, обеспечивающих криптографическую стойкость преобразования алгоритмов криптографических методов информационной безопасности, обосновано критерием регулярности — равным распределением «0» и «1» в таблице истинности. Криптографический стойкость алгоритмы были созданы в таблице истинности, состоящей из 0» и «1», равномерно распределенных логической операцией.
ABSTRACT
In article the decision of the task of determination of the logical actions providing to cryptofirmness of conversion of algorithms of cryptography methods of information security is justified by criterion of regular of — equal distribution «0» and «1» too blocs of bits in the truth diagram. Logical action by the truth diagram uniform distribution «0» and «1» has property of cryptofirmness.
Ключевые слова: криптология, крипотоалгоритм, криптостойкость, симметричное шифрование, открытый ключ, дизъюнкция, конъюнкция, преобразование, микропроцессор, Булевая функция.
Keywords: cryptology, crypto algorithm, crypto firmness, the symmetric encoding, opening key, disjunction, conjunction, conversions, microprocessor, Boolean function.
ВВЕДЕНИЕ
Основы цифровой техники и технологии обмена информацией в информационно-коммуникационных сетях тесно связаны электронными средствами на базе логических операций. Так называемые микропроцессор, микроконтроллер, чип, интегральные схемы и другие электронные разработки являются основами современных вычислительных, контролирующих, аппаратных и аппаратно-программных средств управления [4–10].
Постановка задачи. В данной статье исследованы вопросы криптографической стойкости, эффективной аппаратной и аппаратно-программной реализуемости криптографических преобразований на основе логических операций, выполняемых над битами и блоками битов преобразуемых блоков.
Решение задачи. Отмечается, что на основных преобразованиях идеально стойких и стойких алгоритмов шифрования в обязательном порядке использована операция [1, 2, 3, 6, 7]. Операция определяется: если и или и , то ; иначе (табл. 1).
Таблица 1.
Таблица истинности
0
1
0
0
1
1
1
0
В таблице 1 истинности показано, что -представляющий результат четырех возможных вариантов этой операции принимает значения «0» и «1» равным распределением, т.е. в значениях по два раза повторяется «0» и «1». В общем виде количество операции между двух переменных и равно . Действительно, имеется 4 разных комбинации значения пары и : По значениям пары получается 4 значения , , и , которые принимают значение «0» или «1». Это значит, четырьмя битами можно кодировать разных значений: (0000)2 =(0)10 , (0001)2 =(1)10 , …, (1110)2 = (14)10 , (1111)2 = (15)10 . Здесь соответствует операции.
Можно ставить в соответствие число (0110)2 = 6. Таким образом, можно вводить логические операции, соответствующие следующим состояниям таблицы истинности: (0000)2 = 0, (0001)2 = 1, (0010)2 = 2, (0011)2 = 3, (0100)2 = 4, (0101)2 = 5, (0110)2 = 6, (0111)2 = 7, (1000)2 = 8, (1001)2 = 9, (1010)2 = 10, (1011)2 = 11, (1100)2 = 12, (1101)2 = 13, (1110)2 = 14, (1111)2 = 15.
Таблица 2.
Таблица истинности содержат только «0» и «1»
Где логические операции *0 и *15, соответствующие состояниям (0000)2 = 0 и (1111)2 = 15 со следующими таблицами истинности (табл. 2) [1, 3, 7]. Так как какими бы ни были шифруемый блок или блок ключа, результаты преобразования этими логическими операциями будут содержать блоки последовательности только «0»-нулей или «1»-единиц. Такое обстоятельство позволяет сфабриковать ложные шифры. Поэтому использование операциями *0 и *15 в криптографических преобразованиях является нецелесообразным.
Здесь для большей ясности приводится таблица истинности, соответствующая операции *1— коньюкцию и *7 -дезюнькцию (табл. 3).
Таблица 3.
Коньюкция и дезюнькция таблица истинности
Таким образом над двумя переменными кроме операции *0 и *15 можно определить в количестве 14 (четырнадцать) операций.
Таблица 4.
Таблицы истинности с одинаковым значением
Кроме того, операции, определяемые следующими таблицами истинности, являются неустойчивыми, так как первая неизменной оставляет , а вторая x*5y неизменной оставляет (табл. 4). Такое обстоятельство имеет место потому, что в первой таблице строка, соответствующая значению переменной , имеет элементов только со значением 0-ноль, а строка с значением имеет элементов только со значением 1-один, аналогично во второй таблице столбец, соответствующий значению переменной , имеет элементов только со значением 0-ноль, а столбец со значением имеет элементов только со значением 1-один. Остальные операции могут осуществить преобразования перемешивания над битами блоков открытого или промежуточного с соответствующими битами блока ключа [1]. Ниже приводится таблица сравнения введенных логических операций относительно особенностей свойства криптографической стойкости. В этой таблице сравнением обоснована криптографическая стойкость следующих операций: x*9 y = z, x*10 y = z , x*12 y = z . Эти операции вместе с операцией xÅy = x*6 y = z могут широко использоваться в качестве стойких преобразований.
Таблица 5.
Особенности криптографической стойкости
№
п/п
Тип операции
Таблица истинности операции
Анализ возможных состояний результата операции
Замечание
1
x*1 y = z
x / y
0
1
1) Значения результата z распределены неравномерно.
- Значению z = 0 соответствуют 3 (три) значения пары переменных x и y, а z = 1 соответствует значение 1 (одной) пары, имеются 3 (три) неизвестных состояния, т.е. из z = 1 следует х = 1 и y = 1.
Относительно стойкая
0
0
0
1
0
1
2
x*2 y = z
x / y
0
1
1) Значения результата z распределены неравномерно.
- Значению z = 0 соответствуют 3 (три) значения пары переменных x и y, а z = 1 соответствует значение 1 (одной) пары, имеются 3 (три) неизвестных состояния, т.е. из z = 1 следует х = 1 и y = 0.
Относительно стойкая
0
0
0
1
1
0
3
x*4 y = z
x / y
0
1
1) Значения результата z распределены неравномерно.
- Значению z = 0 соответствуют 3 (три) значения пары переменных x и y, а z = 1 соответствует значение 1 (одной) пары, имеются 3 (три) неизвестных состояния, т.е. из z = 1 следует х = 0 и y = 1.
Относительно стойкая
0
0
1
1
0
0
4
x*6 y = z
xÅ y = z
x / y
0
1
1) Значения результата z распределены равномерно.
2) Значению z = 0 и z = 1 соответствуют по 2 (два) значения пары переменных x и y, т.е. имеются 4 (четыре) неизвестных состояния.
Стойкая
0
0
1
1
1
0
5
x*7 y = z
x / y
0
1
1) Значения результата z распределены неравномерно.
- Значению z = 1 соответствуют 3 (три) значения пары переменных x и y, а z = 0 соответствует значение 1 (одной) пары, имеются 3 (три) неизвестных состояния, т.е. из z = 0 следует х = 0 и y = 0.
Относительно стойкая
0
0
1
1
1
1
6
x*8 y = z
x / y
0
1
1) Значения результата z распределены неравномерно.
- Значению z = 0 соответствуют 3 (три) значения пары переменных x и y, а z = 1 соответствует значение 1 (одной) пары, имеются 3 (три) неизвестных состояния, т.е. из z = 1 следует х = 0 и y = 0.
Относительно стойкая
0
1
0
1
0
0
7
x / y
0
1
1) Значения результата z распределены равномерно.
2) Значению z = 0 и z = 1 соответствуют по 2 (два) значения пары переменных x и y, т.е. имеются 4 (четыре) неизвестных состояния.
Стойкая
0
1
0
1
0
1
8
x*10 y = z
x / y
0
1
1) Значения результата z распределены равномерно.
2) Значению z = 0 и z = 1 соответствуют по 2 (два) значения пары переменных x и y, т.е. имеются 4 (четыре) неизвестных состояния.
Стойкая
0
1
0
1
1
0
9
x*11 y = z
x / y
0
1
1) Значения результата z распределены неравномерно.
- Значению z = 1 соответствуют 3 (три) значения пары переменных x и y, а z = 0 соответствует значение 1 (одной) пары, имеются 3 (три) неизвестных состояния, т.е. из z = 0 следует х = 0 и y = 1.
Относительно стойкая
0
1
0
1
1
1
10
x*12 y = z
x / y
0
1
1) Значения результата z распределены равномерно.
2) Значению z = 0 и z = 1 соответствуют по 2 (два) значения пары переменных x и y, т.е. имеются 4 (четыре) неизвестных состояния.
Стойкая
0
1
1
1
0
0
11
x*13 y = z
x \ y
0
1
1) Значения результата z распределены неравномерно.
- Значению z = 1 соответствуют 3 (три) значения пары переменных x и y, а z = 0 соответствует значение 1 (одной) пары, имеются 3 (три) неизвестных состояния, т.е. из z = 0 следует х = 1 и y = 0.
Относительно стойкая
0
1
1
1
0
1
12
x*14 y = z
x / y
0
1
1) Значения результата z распределены неравномерно.
- Значению z = 1 соответствуют 3 (три) значения пары переменных x и y, а z = 0 соответствует значение 1 (одной) пары, имеются 3 (три) неизвестных состояния, т.е. из z = 0 следует х = 1 и y = 1.
Относительно стойкая
0
1
1
1
1
0
В этой таблице сравнения обоснована криптографическая стойкость следующих операций: x*9 y = z, x*10 y = z , x*12 y = z. Эти операции вместе с операцией xÅy = x*6 y = z могут широко использоваться в качестве стойких преобразований.
Определена относительная стойкость операции дизъюнкции xy = x*7 y = z и конъюнкции xy = x*1 y = z. Воспользовавшись определенными стойкими операциями, можно осуществить побитное преобразование над блоками
и , , т.е. , i=6,9,10,12.
При этом можно убедится, что разным парам блоков , где и , соответствуют разные . Это значит: результаты преобразования, осуществляемые стойкими определенными операциями, обладают свойством регулярности [1, 7]. А преобразования, осуществляемые относительно стойкими операциями, не обладают (или неполно обладают) свойством регулярности. Эти утверждения проверены непосредственным вычислением. Ниже приводятся примеры преобразования со стойкой и относительно стойкой операцией, когда длина преобразуемого блока для простоты . Результаты переменных и после логических операций: .
Таблица 6.
Таблицы истинности для однобитных и двухбитных операций
В этих примерах первое преобразование осуществлено нестойкой операцией, второе осуществлено со стойкой операцией, и, следовательно, видно, что оно обладает свойством регулярности. Последующие два преобразования осуществлены с относительно стойкими операциями и не обладают свойством регулярности.
Аналогичным образом можно вводить операции на основе таблицы истинности с двухбитными блоками: «00», «01», «10», «11». Количество всевозможных таблиц истинности 416 = 4 294 967 296. Если эти пары битов распределены равномерно в таблице истинности размером 4×4, кроме того, в строке, соответствующей значению переменной , где и имеются элементы не только со значением «», аналогично в столбце соответствующего значению переменной имеются элементы не только со значением «», то определяемые операции будут обладать криптографической эффективностью — свойством стойкости. Количество таблиц истинности с равномерным распределением «00», «01», «10», «11» — пары битов
Из них еще исключаются таблицы, элементы одного и того же количества строк и таблиц, 8. Таким образом, можно вводить 1820 – 8 = 1812 операций со свойством равномерного распределения значения: «00», «01», «10», «11» и криптографически стойкими особенностями. Точно так же это основано на трехбитовых блоках 23 = 8 элементов «000», «001», «010», «011», «100», «101», «110», «111» таблицей истинности размером 8×8, можно вводить 864 операций. Из них количество таблиц истинности с равномерным распределением с тремя битами блоками 23 = 8 элементов
Количество таблиц истинности с криптографически стойкими особенностями
.
В научных работах [2, 3, 7] приведена таблица сжатия байта «2 13» = «0010 1011» на полубайт «10» = «1010», т.е. на пересечении строки 2 со столбцом 13 (табл. 7).
Таблица 7.
Четыреразрядные сетки замены
5
13
6
11
1
10
15
8
0
4
7
9
2
12
3
14
8
7
2
14
15
3
11
6
1
12
13
10
5
4
9
0
14
2
13
4
12
7
1
11
6
9
0
5
3
10
8
15
0
14
9
12
3
13
7
4
15
6
5
1
11
2
10
8
3
10
7
2
4
12
9
1
14
13
15
8
0
5
11
6
2
3
1
8
0
14
5
9
12
11
6
7
10
15
13
4
10
4
14
15
9
5
8
2
11
0
1
3
12
6
7
13
11
9
10
1
6
4
13
15
3
5
14
0
8
7
2
12
1
0
3
7
13
11
10
12
9
14
4
6
15
8
5
2
4
8
11
9
14
6
2
5
10
3
12
15
7
13
0
1
9
12
15
0
2
1
14
10
5
8
11
13
4
3
6
7
6
11
8
13
7
9
0
3
4
15
10
2
14
1
12
5
15
1
0
5
10
8
3
7
13
2
9
12
6
14
4
11
12
5
4
10
11
2
6
13
8
7
3
14
1
0
15
9
7
15
12
6
5
0
4
14
2
10
8
11
13
9
1
3
13
6
5
3
8
15
12
0
7
1
2
4
9
11
14
10
В этой таблице числа от 0 до 15, которые выражаются с четырьмя битами, распределены равномерно, т.е. они повторяются ровно по 16 раз, причем по каждой строке и столбцу повторяются один раз. Такие таблицы, принимая как таблицы с четырьмя битами истинности операции над блоками «0000», «0001», «0010», «0011», «0100», «0101», «0110», «0111», «1000», «1001», «1010», «1011», «1100», «1101», «1110», «1111» элементов, можно вводить 16256 операций. Из таких таблиц истинности с равномерным распределением с четырьмя битами разных 24 = 16 элементов можно выделить в количестве , что дает огромное количество логических операций со стойким криптографическим свойством.
Анализ полученных результатов. Любое преобразование осуществляется на основе некоторых операций или их последовательности. Если преобразование разным всевозможным входным значениям ставит в соответствие разные всевозможные значения или равные распределения всевозможных значений, то говорят, что оно обладает свойством регулярности. Преобразование, обладающее свойством регулярности, имеет свойство стойкости, т.е. при решении задачи раскрытия шифров шифрованных блоков требуется выбор всевозможных вариантов. Таким свойством обладает логическая операция . В статье определены и обоснованы регулярности ряда логических операций над битами и блоками битов, которые могут использоваться с таким криптографическим успехом, как операция в разработке криптографических алгоритмов и их программных, а также аппаратных средств. Осуществление этих операций над битами и блоками битов обеспечит обмен цифровых сигналов без задержек в аппаратных и аппаратно-программных реализациях криптографических алгоритмов.
Заключение. В предлагаемой статье переменные и , переменная , выражающая результат, принимают значения «0» или «1». Определено количество возможных операций по выражению в соответствии с различными возможными таблицами истинности. В случае операции над битами разных таблиц истинности условно сопоставлены логические операции (*i , i=1,2,…,16). Обосновано, что если в таблицах истинности введенных операций значения «0» и «1» распределены равномерно — повторяются в равных количествах, то побитное преобразование блоков, осуществляемое на основе таких операций, обладает свойством регулярности. Такое обоснование утверждается для операции над блоками битов. Полученные результаты, кроме решения задач криптографической защиты информации, имеют широкое приложение в разных областях науки информационной техники и технологии.
Список литературы:
1. Акбаров Д.Е. Ахборот хавфсизлигини таъминлашнинг криптографик усуллари ва уларнинг қўлланилиши // Ўзбекистон маркаси. — 2009. — Т. 432.
2. Акбаров Д.Е., Умаров Ш.А. Алгоритм хеш-функции с новыми базовыми преобразованиями // Вісник Національного технічного університету України «Київський політехнічний інститут». Серія: Приладобудування. — 2016. — № 51 (1). — С. 100–108 / [Электронный ресурс]. — Режим доступа: URL: https://ela.kpi.ua/bitstream/123456789/18117/1/20.pdf.
3. Акбаров Д.Е., Умаров Ш.А. Новый алгоритм блочного шифрования данных с симметричным ключом // Вісник Національного технічного університету України «Київський політехнічний інститут». Серія: Приладобудування. — 2016. — № 52 (2). — С. 82–91 / [Электронный ресурс]. — Режим доступа: URL: https://ela.kpi.ua/bitstream/123456789/19360/1/15Akbarov.pdf.
4. Баранов В.Н. Применение микроконтроллеров AVR: схемы, алгоритмы, программы // Додэка-XXI. — 2006 // [Электронный ресурс]. — Режим доступа: URL: https://www.labirint.ru/books/102083/.
5. Бродин В.Б., Калинин А.В. Системы на микроконтроллерах и БИС программируемой логики. — М. : ЭКОМ, 2002 / [Электронный ресурс]. — Режим доступа: URL: https://www.twirpx.com/file/10572/.
6. Карондеев А.М. Сложение по модулю 2 n в блочном шифровании // Прикладная дискретная математика. Приложение. — 2015. — №. 8. / [Электронный ресурс]. — Режим доступа: URL: https://cyberleninka.ru/article/n/16455302.
7. Логачев О.А., Сальников А.А., Ященко В.В. Булевы функции в теории кодирования и криптологии. — Изд-во МЦНМО, 2004 / [Электронный ресурс]. — Режим доступа: URL: https://www.twirpx.com/file/206083/.
8. Молдовян Н.А. Криптография: от примитивов к синтезу алгоритмов. — БХВ-Петербург, 2004 / [Электронный ресурс]. — Режим доступа: URL: URL: http://static.ozone.ru/multimedia/book_file/1009552731.pdf.
9. Предко М. Руководство по микроконтроллерам: в 2 т. — 2001 / [Электронный ресурс]. — Режим доступа: URL: http://padabum.com/d.php?id=2896.
10. Шалыто А.А. Логическое управление: методы аппаратной и программной реализации алгоритмов. — Наука, 2000 / [Электронный ресурс]. — Режим доступа: URL: https://www.twirpx.com/file/114425/.
Определить количество строк и столбцов в таблице истинности.
Т.к. каждое из простых высказываний может принимать всего два значения (0 или 1), то количество разных комбинаций значений n высказываний – 2 n .
Количество строк в таблице = 2 n + строка на заголовок.
Количество столбцов в таблице равно сумме количества простых высказываний (n) и количества разных логических операций, входящих в сложное высказывание.
В нашем примере: количество строк — 22 + 1 = 5 ,
столбцов – 2 + 4 = 6
Начертить таблицу и заполнить заголовок
Первая строка – номера столбцов.
Вторая строка промежуточные формулы и соответствующие им условные записи операций над значениями .
Заполнить первые n столбцов.
В нашем примере сначала заполняем 1-й и 2-й столбцы.
Заполнить остальные столбцы.
В соответствии с таблицами истинности соответствующих логических операций, причем при заполнении каждого столбца операции выполняются над значениями одного или двух столбцов, расположенных левее заполняемого.
Итак, вычисляем значения 3-го столбца по значениям 2-го, потом значения 4-го – по значениям 1-го и 2-го…
К
С
С
К C
( К C ) & С
( К C ) & С К
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
Вывод: получили в последнем столбце все единицы. Значит, значение сложного высказывания истинно при любых значениях простых высказываний К и С. Следовательно, учитель рассуждал логически правильно.
СДНФ (Совершенная Дизъюнктивная Нормальная Форма) — это такая ДНФ, которая удовлетворяет трём условиям:
в ней нет одинаковых элементарных конъюнкций
в каждой конъюнкции нет одинаковых пропозициональных букв
каждая элементарная конъюнкция содержит каждую пропозициональную букву из входящих в данную ДНФ пропозициональных букв, причем в одинаковом порядке.
Для любой функции алгебры логики существует своя СДНФ, причем единственная.
СКНФ (Совершенная Конъюнктивная Нормальная Форма) — это такая КНФ, которая удовлетворяет трём условиям:
в ней нет одинаковых элементарных дизъюнкций
в каждой дизъюнкции нет одинаковых пропозициональных переменных
каждая элементарная дизъюнкция содержит каждую пропозициональную букву из входящих в данную КНФ пропозициональных букв.
Совершенная конъюнктивная нормальная форма (СКНФ):
1) нет двух элементарных дизъюнкций;
2) ни одна элементарная дизъюнкция не содержит двух одинаковых переменных;
3) ни одна элементарная дизъюнкция не содержит переменную вместе с ее инверсией;
4) все дизъюнкции имеют один и тот же ранг.
Совершенная дизъюнктивная нормальная форма (СДНФ)
Алгоритм образования СКНФ и СДНФ по таблице истинности
1. Выделить в таблице истинности все строки, в которых функция принимает значения 0.
1. Выделить в таблице истинности все строки, в которых функция принимает значения 1.
2. Для каждого выбранного набора записать элементарные дизъюнкции, содержащие переменные:
а) если значение переменной равно 0, то записывается сама переменная,
б) если значение переменной равно 1, то записывается инверсия этой переменной.
2. Для каждого выбранного набора записать элементарные конъюнкции, содержащие переменные:
а) если значение переменной равно 0, то записывается инверсия этой переменной,
б) если значение переменной равно 1, то записывается сама переменная.
3. Соединить элементарные дизъюнкции знаком конъюнкции.
3. Соединить элементарные конъюнкции знаком дизъюнкции.
Полином Жегалкина — многочлен над кольцом , то есть полином с коэффициентами вида 0 и 1, где в качестве произведения берётся конъюнкция, а в качестве сложения —исключающее или. Полином был предложен в 1927 году Иваном Жегалкиным в качестве удобного средства для представления функций булевой логики. В зарубежной литературе представление в виде полинома Жегалкина обычно называется алгебраической нормальной формой (АНФ).
Теорема Жегалкина — утверждение о существовании и единственности представления всякой булевой функции в виде полинома Жегалкина.
Полином Жегалкина представляет собой сумму по модулю два произведений неинвертированных переменных, а также (если необходимо) константы 1. Формально полином Жегалкина можно представить в виде
или в более формализованном виде как:
Примеры полиномов Жегалкина:
5.
Аксиомы исчисления высказываний
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Правил вывода в ИВ имеется два. Первое из них, называемое правилом заключения или modus ponens (сокращенно mod pon) дает по паре формул Ф и Ф Ψ формулу Ψ, или, в функциональных обозначениях,
R1 (Ф, Ф Ψ) = Ψ.
Таким образом, mod pon – это функция двух переменных, причем определенная не всюду, а только для пар формул, очевидным образом согласованных друг с другом.
Второе из правил вывода – это правило подстановки. Операция подстановки Ψ естественно определяется для произвольных слов. Итак, пусть Ф и Ψ – слова в некотором алфавите А, а x – буква того же алфавита. Результатом подстановки слова Ψ вместо буквы х в слово Ф, обозначаемым SхΨ Ф, называют слово, получающееся из Ф в результате замены каждого вхождения в него буквы х на слово Ψ. Например,
Sлжирофл леля = жирофлежирофля.
(Отметим на всякий случай, что все вхождения символа х в Ф заменяются на Ψ, так сказать, “одновременно”: дело в том, что в слове Ψ тоже могут содержаться вхождения буквы х, но эти новые вхождения на Ψ уже не заменяются!)
Пусть теперь Ф и Ψ – формулы ИВ, а А – некоторая его переменная. Тогда правило подстановки r2 формулируется так:
r2 (Ф) = SАФ.
Очевидно, что это – “параметрическое” правило; иными словами, имеется целое семейство правил подстановки, зависящее от двух параметров, переменной А и формулы Ψ. Применять можно любое из них.
Пример формального вывода в ИВ
Мы построим т.н. комментированный вывод, указывая справа в скобках основания, по которым та или иная формула занимает в нашем выводе соответствующее место.
Ф1: А (В А) (акс. А1)
Ф2: (А (В С)) ((А В) (А С))) (акс. А2)
Ф3: (А (В А)) ((А В) (А А))) (SСА Ф2)
Ф4: (А В) (А А) (r1 (Ф1, Ф3))
Ф5: (А (В А)) (А А) (SВВА Ф4)
Ф6: А А (r1 (Ф1, Ф5))
Согласно данным определениям, наш вывод является выводом формулы А А. Построив этот вывод, мы доказали, что
ИВ (А А).
Отсюда немедленно следует, что, какова бы ни была формула в ИВ,
ИВ (Ψ Ψ)
(достаточно только что построенный вывод дополнить еще одним применением правила подстановки).
Отметим некоторые свойства выводов (их доказательства представляются очевидными). Хотя мы формулируем их в разделе, посвященном ИВ, они справедливы для любого формального исчисления.
Всякий вывод открывается одной из аксиом.
Начальный отрезок всякого вывода является выводом. т.е., если
Ф1, Ф2, …, Фк, …, Фn –
вывод, то и
Ф1, Ф2, …, Фк –
тоже вывод.
3. Если
Ф1, Ф2, …, Фn, и Ψ1, Ψ2, …, Ψm –
выводы, то и последовательность
Ф1, Ф2, …, Фn, Ψ1, Ψ2, …, Ψm –
тоже вывод.
4. Свойство 3 говорит, что, приписав один вывод за другим, мы получим снова вывод. Это утверждение можно обобщить: пусть Ф1, …, Фnи 1, …, m– выводы; тогда всякая последовательность
X1, X2, …, Xm+n,
для которой из того, что
Xi = Фi´, Xj´ = Фj´, i< j, или
Xi = Ψi´, Xj = Ψj´, i < j,
следует, что i´ < j´, сама является выводом.
Формула A называется выводимой из множества формул Г(следствием множества формул Г) в данной теории, если существует последовательность A1,…An формул такая, что An есть A и для любого i формула Ai есть либо аксиома, либо одна из формул множества Г, либо непосредственное следствие предыдущих формул последовательности по одному из правил вывода. В этом случае последовательность формул A1,…An называется выводомформулы A из Г. Формулы множества Г называются гипотезами (допущениями, посылками) вывода.
Для сокращения записи утверждения «A есть следствие множества формул Г» употребляется обозначение . Если множество Г конечно, Г={B1,…Bn}, то вместо {B1,…Bn} пишут B1,…Bn. Если Г- пустое множество (вывод является доказательством), то пишут , что равнозначно утверждению «A есть теорема».
Правила вывода можно подразделить на общие (работающие в любых аксиоматических теориях) и частные (работающие в теориях определенного типа). Приведем несколько общих правил, применяемых для построения доказательств и выводов в любых теориях.
Правило повторения посылки: .
Правило введения посылки: если , то .
Правило удаления посылки: если и , то .
Правило силлогизма: если то .
Таблицы истины — Критическое мышление
Эта глава представляет способ оценки предложений и аргументов SL. Хотя метод таблицы истинности может быть трудоемким, это чисто механическая процедура, не требующая интуиции или особой проницательности.
Любое неатомарное предложение SL состоит из атомарных предложений с сентенциальными связками. Истинность составного предложения зависит только от истинностной ценности составляющих его атомарных предложений. Например, чтобы узнать истинностное значение ( D ↔ E ), вам нужно знать только истинное значение D и истинностное значение E .Связки, которые работают таким образом, называются ИСТИННО-ФУНКЦИОНАЛЬНЫМИ.
В этой главе мы воспользуемся тем фактом, что все логические операторы в SL являются функциональными по истинности — это позволяет создавать таблицы истинности для определения логических свойств предложений. Однако вы должны понимать, что это возможно не для всех языков. В английском языке можно составить новое предложение из любого более простого предложения X , сказав: «Возможно, что X ». Истинность этого нового предложения не зависит напрямую от истинности X .Даже если X ложно, возможно, в некотором смысле X могло быть истинным — тогда новое предложение будет истинным. Некоторые формальные языки, называемые модальными логиками , имеют оператор для возможности. В модальной логике мы могли бы перевести «Возможно, что X » как ◊ X . Однако за возможность переводить подобные предложения приходится платить: оператор ◊ не является функциональным по истинности, и поэтому модальные логики не поддаются таблицам истинности.
Истинность предложений, содержащих только одну связку, задается характеристической таблицей истинности для этой связки.В предыдущей главе мы написали характерные таблицы истинности, где буква «T» соответствует истине, а буква «F» — ложь. Однако важно отметить, что речь идет не об истине в каком-либо глубоком или космическом смысле. Поэты и философы могут долго спорить о природе и значении , истины , но функции истинности в SL — это просто правила, которые преобразуют входные значения в выходные значения. Чтобы подчеркнуть это, в этой главе мы будем писать «1» и «0» вместо «T» и «F». Несмотря на то, что мы интерпретируем «1» как значение «истина» и «0» как значение «ложь», компьютеры можно запрограммировать на заполнение таблиц истинности чисто механическим способом.В машине «1» может означать, что регистр включен, а «0» — что регистр выключен. Математически это всего лишь два возможных значения, которые может иметь предложение SL. Таблицы истинности для связок SL, записанные в единицах и нулях, приведены в таблице 5.1.
Характеристическая таблица истинности для конъюнкции, например, дает условия истинности для любого предложения формы ( A и B ). Даже если конъюнкты A и B являются длинными сложными предложениями, конъюнкция истинна тогда и только тогда, когда истинны как A , так и B .Рассмотрим предложение ( H и I ) → H . Мы рассматриваем все возможные комбинации истинного и ложного для H и I , что дает нам четыре строки. Затем мы копируем значения истинности для букв предложения и записываем их под буквами предложения.
Теперь рассмотрим субпредложение H и I . Это соединение A и B с H как A и с I как B . H и I верны в первой строке. Поскольку конъюнкция истинна, когда истинны оба конъюнкта, мы пишем 1 под символом конъюнкции. Продолжаем остальные три ряда и получаем:
Все предложение является условным A → B с ( H и I ) как A и с H как B . Во второй строке, например, ( H & I ) ложно, а H истинно.Поскольку условное выражение истинно, когда антецедент ложно, мы пишем 1 во второй строке под условным символом. Продолжаем остальные три ряда и получаем:
Столбец единиц под условным выражением говорит нам, что предложение ( H & I ) → I истинно независимо от значений истинности H и I . Они могут быть истинными или ложными в любой комбинации, и сложное предложение все равно остается истинным. Очень важно, чтобы мы рассмотрели все возможные комбинации.Если бы у нас была только двухстрочная таблица истинности, мы не могли бы быть уверены, что предложение не было ложным для некоторой другой комбинации значений истинности.
В этом примере мы не повторили все записи в каждой последующей таблице. Однако при написании таблиц истинности на бумаге непрактично стирать целые столбцы или переписывать всю таблицу на каждом этапе. Таблица истинности может быть записана так:
, хотя она и более загружена.Большинство столбцов под предложением предназначены только для бухгалтерских целей.Когда вы станете лучше разбираться в таблицах истинности, вам, вероятно, больше не нужно будет копировать столбцы для каждой буквы предложения. В любом случае значение истинности предложения в каждой строке — это просто столбец под основным логическим оператором предложения; в этом случае столбец под условным.
В ТАБЛИЦЕ ПОЛНОЙ ИСТИНЫ есть строка для всех возможных комбинаций 1 и 0 для всех букв предложения. Размер полной таблицы истинности зависит от количества различных букв предложения в таблице.Предложение, содержащее только одну букву предложения, требует только двух строк, как в характерной таблице истинности для отрицания. Это верно, даже если одна и та же буква повторяется много раз, как в предложении [( C ↔ C ) → C ] & ¬ ( C → C ). Полная таблица истинности требует только двух строк, потому что есть только две возможности: C может быть истинным или ложным. Буква с одним предложением никогда не может быть помечена как 1 и 0 в одной строке. Таблица истинности для этого предложения выглядит так:
Глядя на столбец под основной связкой, мы видим, что предложение ложно в обеих строках таблицы; я.е., это ложь независимо от того, является ли C истинным или ложным.
Предложение, содержащее две буквы предложения, требует четырех строк для полной таблицы истинности, как в характеристических таблицах истинности и в таблице для ( H и I ) → I .
Предложение, состоящее из трех букв предложения, требует восьми строк. Например:
Из этой таблицы мы знаем, что предложение M & ( N ∨ P ) может быть истинным или ложным, в зависимости от значений истинности M , N и P .
Полная таблица истинности для предложения, содержащего четыре разных буквы предложения, требует 16 строк. Пять букв, 32 строки. Шесть букв, 64 строки. И так далее. Чтобы быть совершенно общим: если полная таблица истинности имеет n разных букв предложения, то она должна иметь 2 n строк.
Чтобы заполнить столбцы полной таблицы истинности, начните с самой правой буквы предложения и чередуйте единицы и нули. В следующем столбце слева напишите две единицы, два нуля и повторите.В третьей букве предложения напишите четыре единицы, а затем четыре нуля. Это дает восьмистрочную таблицу истинности, подобную приведенной выше.
Для 16-строчной таблицы истинности следующий столбец букв предложения должен содержать восемь единиц, за которыми следуют восемь нулей. Для таблицы из 32 строк в следующем столбце будет 16 единиц, за которыми следуют 16 нулей. И так далее.
Тавтологии, противоречия и условные предложенияНапомним, что английское предложение является тавтологией, если оно должно быть истинным с точки зрения логики.Имея полную таблицу истинности, мы рассматриваем все возможные варианты развития мира. Если предложение истинно в каждой строке полной таблицы истинности, то с точки зрения логики оно истинно, независимо от того, на что похож мир.
Таким образом, предложение является ТАВТОЛОГИЕЙ В SL, если столбец под его основной связкой равен 1 в каждой строке полной таблицы истинности.
И наоборот, предложение является CONTRADICTION IN SL, если столбец под его основной связкой равен 0 в каждой строке полной таблицы истинности.
Предложение является СЛОЖНЫМ В SL, если оно не является ни тавтологией, ни противоречием; т.е. если он равен 1 хотя бы в одной строке и 0 хотя бы в одной строке.
Из таблиц истинности в предыдущем разделе мы знаем, что ( H и I ) → H — это тавтология, что [( C ↔ C ) → C ] & ¬ ( C → C ) является противоречием, и что M & ( N ∨ P ) является условным.
Логическая эквивалентностьДва предложения в английском языке логически эквивалентны, если они имеют то же значение истинности, что и логика материи. Еще раз, таблицы истинности позволяют нам определить аналогичную концепцию для SL: два предложения ЛОГИЧЕСКИ ЭКВИВАЛЕНТНЫ В SL, если они имеют одинаковое значение истинности в каждой строке полной таблицы истинности.
Рассмотрим предложения ¬ ( A ∨ B ) и ¬ A & ¬ B . Они логически эквивалентны? Чтобы выяснить это, мы составляем таблицу истинности.
Посмотрите на столбцы основные связки; отрицание для первого предложения, союз для второго. В первых трех строках обе равны 0. В последней строке обе равны 1. Поскольку они совпадают в каждой строке, два предложения логически эквивалентны.
СогласованностьНабор предложений на английском языке является непротиворечивым, если логически возможно, чтобы все они одновременно были истинными. Набор предложений ЛОГИЧЕСКИ СООТВЕТСТВУЕТ SL, если есть хотя бы одна строка полной таблицы истинности, в которой все предложения истинны.В противном случае НЕДОСТАТОЧНО.
Срок действияАргумент на английском языке действителен, если логически невозможно, чтобы посылка была истинной, и заключение было ложным одновременно. Аргумент VALID IN SL, если нет строки полной таблицы истинности, в которой все предпосылки равны 1, а заключение — 0; аргумент НЕДЕЙСТВИТЕЛЬНО В SL, если такая строка существует.
Рассмотрим этот аргумент:
Это действительно? Чтобы выяснить это, мы составляем таблицу истинности.
Да, аргумент верен. Единственный ряд, в котором оба помещения равны 1, — это второй ряд, и в этом ряду вывод также равен 1.
Чтобы показать, что предложение является тавтологией, нам нужно показать, что оно равно 1 в каждой строке. Итак, нам нужна полная таблица истинности. Однако, чтобы показать, что предложение , а не тавтология, нам нужна только одна строка: строка, в которой предложение равно 0. Следовательно, чтобы показать, что что-то не является тавтологией, достаточно указать одно- строка таблица частичной истинности — независимо от того, сколько букв предложения может быть в предложении.
Рассмотрим, например, предложение ( U & T ) → ( S & W ). Мы хотим показать, что это , а не тавтология, предоставив частичную таблицу истинности. Заполняем 0 для всего предложения. Основная связка предложения — условная. Чтобы условие было ложным, антецедент должен быть истинным (1), а следствие — ложным (0).Итак, мы заполняем их в таблице:
Для того, чтобы ( U и T ) было истинным, должны быть истинными и U , и T .
Теперь нам просто нужно сделать ( S и W ) ложным. Для этого нам нужно сделать хотя бы одно из S и W ложным. Мы можем сделать ложными и S , и W , если захотим. Важно только то, что на этой строчке все предложение оказывается ложным. Приняв произвольное решение, завершаем таблицу так:
Для демонстрации противоречия требуется полная таблица истинности.Показывая, что что-то , а не , противоречие требует только однострочной частичной таблицы истинности, где предложение истинно в этой единственной строке.
Предложение условно, если оно не является ни тавтологией, ни противоречием. Таким образом, чтобы показать, что предложение является условным, требуется двухстрочная таблица истинности : предложение должно быть истинным в одной строке и ложным — в другой. Например, мы можем показать, что приведенное выше предложение зависит от этой таблицы истинности:
Таблица 5.2: Вам нужна полная или частичная таблица истинности? Это зависит от того, что вы пытаетесь показать.Обратите внимание, что существует множество комбинаций значений истинности, которые сделали бы предложение истинным, поэтому есть много способов написать вторую строку.
Чтобы показать, что предложение является условным , а не , необходимо предоставить полную таблицу истинности, поскольку для этого требуется показать, что предложение является тавтологией или противоречием. Если вы не знаете, является ли конкретное предложение условным, то вы не знаете, понадобится ли вам полная или частичная таблица истинности.Вы всегда можете начать работу над полной таблицей истинности. Если вы заполните строки, которые показывают, что предложение условно, вы можете остановиться. Если нет, то заполните таблицу истинности. Несмотря на то, что две тщательно отобранные строки покажут, что условное предложение является условным, нет ничего плохого в том, чтобы заполнить больше строк.
Чтобы показать, что два предложения логически эквивалентны, необходимо предоставить полную таблицу истинности. Чтобы показать, что два предложения логически эквивалентны , а не , требуется только однострочная частичная таблица истинности: составьте таблицу так, чтобы одно предложение было истинным, а другое — ложным.
Чтобы показать, что набор предложений непротиворечив, требуется предоставить одну строку таблицы истинности, в которой все предложения истинны. Остальная часть таблицы не имеет значения, поэтому подойдет однострочная частичная таблица истинности. С другой стороны, чтобы показать, что набор предложений непоследователен, требуется полная таблица истинности: вы должны показать, что в каждой строке таблицы хотя бы одно из предложений ложно.
Чтобы показать, что аргумент действителен, требуется полная таблица истинности. Отображение того, что аргумент недействителен. требует только предоставления однострочной таблицы истинности: если вы можете создать строку, в которой все предпосылки истинны, а вывод ложен, то аргумент недействителен.
Таблица 5.2 показывает, когда требуется полная таблица истинности, а когда подойдет частичная таблица истинности.
V. Практические упражнения
Если вам нужна дополнительная практика, вы можете составить таблицы истинности для любых предложений и аргументов в упражнениях предыдущей главы.
* Часть A Определите, является ли каждое предложение тавтологией, противоречием или условным предложением. Обоснуйте свой ответ полной или частичной таблицей истинности, если это необходимо.
* Часть B Определите, является ли каждая пара предложений логически эквивалентной. Обоснуйте свой ответ полной или частичной таблицей истинности, если это необходимо.
* Часть C Определите, является ли каждый набор предложений последовательным или непоследовательным. Обоснуйте свой ответ полной или частичной таблицей истинности, если это необходимо.
* Часть D Определите, действителен ли каждый аргумент. Обоснуйте свой ответ полной или частичной таблицей истинности, если это необходимо.
* Часть E Ответьте на каждый из приведенных ниже вопросов и обоснуйте свой ответ.
Часть F Мы могли бы убрать двояковыпуклый (↔) из языка. Если бы мы сделали это, мы все равно могли бы написать « A ↔ B », чтобы было легче читать предложения, но это было бы сокращением для ( A → B ) & ( B → A ).Результирующий язык будет формально эквивалентен SL, поскольку A ↔ B и ( A → B ) & ( B → A ) логически эквивалентны в SL. Если бы мы ценили формальную простоту выше выразительного богатства, мы могли бы заменить больше связок условными обозначениями и по-прежнему иметь язык, эквивалентный SL.
Существует ряд эквивалентных языков только с двумя связками. Достаточно иметь только отрицание и материальную условность.Покажите это, написав предложения, которые логически эквивалентны каждому из следующих, используя только круглые скобки, буквы предложения, отрицание (¬) и материальное условное выражение (→).
У нас мог бы быть язык, эквивалентный SL, только с отрицанием и дизъюнкцией в качестве связок. Покажите это: используя только круглые скобки, буквы в предложениях, отрицание (¬) и дизъюнкцию (∨), напишите предложения, которые логически эквивалентны каждому из следующих.
Штрих Шеффера является логическим соединением со следующей характеристической таблицей истинности:
7. Напишите предложение, используя связки SL, которое логически эквивалентно ( A | B ).
Каждое предложение, написанное с использованием связки SL, можно переписать как логически эквивалентное предложение, используя один или несколько штрихов Шеффера. Используя только штрих Шеффера, напишите предложения, эквивалентные каждому из следующих.
Что такое таблица истинности? — Определение с сайта WhatIs.com
Таблица истинности — это разбивка логической функции путем перечисления всех возможных значений, которых может достичь функция.Такая таблица обычно содержит несколько строк и столбцов, причем верхняя строка представляет логические переменные и комбинации, с возрастающей сложностью, ведущей к конечной функции.
В логической функции есть три основные операции: НЕ (также называемое инверсией или отрицанием и обозначаемое символом -), ИЛИ (также называемое дизъюнкцией или сложением и обозначаемое символом +) и И (также называемое соединением или умножением и обозначаемое символом *). Значения функций обычно назначаются как логика 0 = ложь и логика 1 = истина.Таким образом, применяются следующие правила:
Если A = 0, то -A = 1
Если A = 1, то -A = 0
A + B = 1, кроме случаев, когда A = 0 и B = 0
A + B = 0, если A = 0 и B = 0
A * B = 0, кроме случаев, когда A = 1 и B = 1
A * B = 1, если A = 1 и B = 1В следующих таблицах показан процесс оценки значений логической функции — (A + B) * — (A * B), определяемой путем разбивки ее на составляющие функции. Две логические переменные, A и B, перечислены вверху первых двух столбцов.Все возможные комбинации значений для A и B перечислены в этих столбцах путем подсчета в двоичных числах: 00, 01, 10, 11. Крайний правый (в данном случае седьмой) столбец содержит функцию, которая должна быть оценена (последний функция).
A Б А + В А * В — (А + В) — (А * В) — (A + B) * — (A * B) ? ? ? ? ? 1 ? ? ? ? ? 1 ? ? ? ? ? 1 1 ? ? ? ? ? После настройки этой структуры значения в третьем и четвертом столбцах определяются по простым правилам сложения и умножения:
A Б А + В А * В — (А + В) — (А * В) — (A + B) * — (A * B) ? ? ? 1 1 ? ? ? 1 1 ? ? ? 1 1 1 1 ? ? ? Затем значения в пятом и шестом столбцах определяются путем отрицания значений в третьем и четвертом столбцах:
A Б А + В А * В — (А + В) — (А * В) — (A + B) * — (A * B) 1 1 ? 1 1 1 ? 1 1 1 ? 1 1 1 1 ? Наконец, значения оцениваемой функции определяются путем умножения значений пятого и шестого столбцов:
A Б А + В А * В — (А + В) — (А * В) — (A + B) * — (A * B) 1 1 1 1 1 1 1 1 1 1 1 1 1 Это простая логическая функция.Некоторые функции имеют много входных переменных и состоят из множества составляющих функций. В результате может получиться таблица с сотнями строк и столбцов. Компьютеры используются для создания таблиц истинности для очень сложных логических функций.
Альтернативой таблице истинности является использование булевых теорем. Этот метод, называемый булевой алгеброй, используется инженерами для поиска простейшей схемы, которая будет выполнять желаемую логическую функцию. Это оптимизирует эффективность системы за счет минимизации количества операций, которые необходимо выполнить для выполнения данной задачи.
2.6: Проверка достоверности таблицы истинности
До сих пор мы научились переводить определенные английские предложения на наш символический язык, который состоит из набора констант (т. Е. Заглавных букв, которые мы используем для представления различных атомарных предложений ) и функциональные связки истинности. Но что это за результат? В этом разделе мы узнаем, каков результат. Короче говоря, выгода будет заключаться в том, что у нас будет чисто формальный метод определения достоверности определенного класса аргументов, а именно тех аргументов, достоверность которых зависит от функционирования связок, функционирующих на основе истинности.Это то, что логики называют «логикой высказываний» или «логикой высказываний».
В первой главе мы изучили неформальный тест на достоверность, который требовал от нас попытаться представить сценарий, в котором предпосылки аргумента были верными, а вывод — ложным. Мы увидели, что если мы можем представить себе такой сценарий, то аргумент неверен. С другой стороны, если невозможно представить сценарий, в котором предпосылки верны, а вывод ложен, тогда аргумент действителен.Рассмотрим этот аргумент:
1. Осужденный сбежал либо пролез по канализационным трубам, либо спрятавшись в кузове автофургона.
2. Но осужденному не удалось спастись по канализационным трубам.
3. Таким образом, осужденный скрылся в кузове автофургона.Используя неформальный тест на достоверность, мы можем увидеть, что если мы представим себе, что первая и вторая посылка верны, то должен следовать вывод. Однако мы также можем доказать, что этот аргумент действителен, не представляя сценариев и не задаваясь вопросом, будет ли вывод верным в этих сценариях.Мы можем сделать это, а) переведя это предложение на наш символический язык, а затем б) используя таблицу истинности, чтобы определить, верен ли аргумент. Начнем с перевода. Первая посылка содержит два атомарных предложения. Вот предложения и константы, которые я буду использовать для их обозначения:
S = Осужденный сбежал по канализационной трубе
D = Осужденный сбежал, спрятавшись в кузове фургона
Как мы видим, первая посылка является дизъюнкцией, поэтому, используя указанные выше константы, мы можем перевести эту первую посылку следующим образом:
S против D
Вторая посылка — это просто отрицание S:
.~
сНаконец, вывод — это просто атомарное предложение, Д.Собирая все это в стандартную форму, получаем:
1. S v D
2. ~ S
3. ∴ DМы будем использовать символ «∴» для обозначения заключения и прочитаем его «поэтому».
Следующее, что нам нужно сделать, это построить таблицу истинности. Мы уже видели несколько примеров таблиц истинности, когда я определял функциональные связки истинности, которые я ввел до сих пор (конъюнкция, дизъюнкция и отрицание). Таблица истинности (как мы видели в разделе 2.2) — это просто устройство, которое мы используем, чтобы представить, как значение истинности сложного предложения зависит от истинности предложений, которые составляют его во всех возможных сценариях.При построении таблицы истинности первое, что нужно спросить, — сколько элементарных предложений необходимо представить в таблице истинности. В этом случае ответ — «два», поскольку в этом аргументе содержится только два атомарных предложения (а именно, S и D). Учитывая, что существует только два атомарных предложения, наша таблица истинности будет содержать только четыре строки — по одной строке для каждого возможного сценария. Будет одна строка, в которой S и D истинны, одна строка, в которой S и D ложны, одна строка, в которой S истинно, а D ложно, и одна строка, в которой S ложно, а D истинно.
D S S против D ~ Д Т F Т F Ф Т Ф F Два крайних левых столбца — это то, что мы называем ссылочными столбцами таблицы истинности. Справочные столбцы присваивают все возможные комбинации значений истинности атомарным предложениям аргумента (в данном случае только D и S). Справочные столбцы фиксируют все логически возможные сценарии. Поступая таким образом, мы можем заменить необходимость использовать ваше воображение для представления различных сценариев (как в неформальной проверке достоверности) механической процедурой, которая не требует от нас слишком много воображать или даже думать. Таким образом, вы можете думать о каждой строке таблицы истинности как о описании одного из возможных сценариев.То есть каждая строка является одним из возможных назначений значений истинности атомарным предложениям. Например, строка 1 таблицы истинности (первая строка после строки заголовка) представляет собой сценарий, в котором верно, что осужденный сбежал, спрятавшись в задней части фургона, и также верно, что осужденный сбежал с помощью ползать по канализационным трубам. Напротив, строка 4 представляет собой сценарий, в котором осужденный не сделал ни одного из этих действий.
Следующее, что нам нужно сделать, это выяснить, каковы значения истинности посылок и заключения для каждой строки таблицы истинности.Мы можем определить, каковы эти значения истинности, потому что мы понимаем, как значение истинности составного предложения зависит от значения истинности атомарных предложений. Учитывая значения функциональных связок истинности (обсуждаемых в предыдущих разделах), мы можем заполнить нашу таблицу истинности следующим образом:
D S S против D ~ Д Т F Т F Т Т F Т Т Т Ф Т Т F F Ф F F Т F Чтобы определить значения истинности для первой посылки аргумента («S v D»), нам просто нужно знать значения истинности S и D и значение функциональной связки истинности, дизъюнкции.Таблица истинности дизъюнкции говорит, что дизъюнкция истинна, пока истинен хотя бы один из ее дизъюнктов. Таким образом, каждая строка в столбце «S v D» должна быть истинной, за исключением последней строки, поскольку в последней строке и D, и S ложны (тогда как в первых трех строках по крайней мере одно или другое истинно). Значения истинности для второй посылки (~ S) легко определить: мы просто смотрим на то, что мы присвоили «S» в нашем справочном столбце, а затем отрицаем эти значения истинности — Ts становится Fs, а Fs становится Ts.Именно это я сделал в четвертом столбце приведенной выше таблицы истинности. Наконец, вывод в последнем столбце таблицы истинности будет просто повторять то, что мы присвоили «D» в нашем справочном столбце, поскольку последний вывод просто повторяет атомарное утверждение «D».
Приведенная выше таблица истинности завершена. Теперь возникает вопрос: как мы можем использовать эту заполненную таблицу истинности, чтобы определить, действителен ли аргумент? Для этого мы должны применить то, что я называю «проверкой достоверности таблицы истинности».Согласно тесту на достоверность таблицы истинности , аргумент действителен тогда и только тогда, когда для каждого присвоения значений истинности атомарным предложениям, если посылки истинны, то вывод истинен. Аргумент недействителен , если существует присвоение значений истинности атомарным суждениям, на которых посылки истинны, но, тем не менее, заключение ложно. Крайне важно, чтобы вы понимали (а не просто запоминали), что означают эти определения. Вы должны увидеть, что эти определения действительности и недействительности имеют структуру, аналогичную неформальным определениям действительности и недействительности (обсуждаемым в главе 1).Сходство в том, что мы ищем возможность того, что посылки верны, а вывод ложен. Если это возможно, то аргумент недействителен; если это невозможно, то аргумент верен. Разница, как я отмечал выше, заключается в том, что с помощью проверки достоверности таблицы истинности мы заменяем необходимость использовать ваше воображение механической процедурой присвоения значений истинности атомарным предложениям, а затем определения значений истинности посылок и заключения для каждое из этих заданий.
Применяя эти определения к приведенной выше таблице истинности, мы можем видеть, что аргумент действителен, потому что нет присвоения значений истинности атомарным предложениям (т. Е. Ни одной строке нашей таблицы истинности), на которой все предпосылки истинны, но вывод ложный. Посмотрите на первый ряд. Является ли это строкой, в которой все предпосылки верны, а вывод ложен? Нет, потому что не все предпосылки в этом ряду верны. В частности, «~ S» в этой строке неверно. Посмотрите на второй ряд.Является ли это строкой, в которой все предпосылки верны, а вывод ложен? Нет, это не так; хотя обе посылки верны в этом ряду, вывод верен и в этом ряду. Теперь рассмотрим третий ряд. Является ли это строкой, в которой все предпосылки верны, а вывод ложен? Нет, потому что это не тот ряд, в котором верны обе посылки. Наконец, рассмотрим последний ряд. Является ли это строкой, в которой все предпосылки верны, а вывод ложен? Опять же, ответ — «нет», потому что в этой строке неверны обе посылки.Таким образом, мы можем видеть, что нет строки таблицы истинности, в которой все посылки истинны, а вывод ложен. А это значит, что аргумент верен.
Поскольку проверка достоверности таблицы истинности — это формальный метод оценки достоверности аргумента, мы можем определить, действителен ли аргумент только в силу его формы, даже не зная, о чем идет речь! Вот пример:
1. (A v B) v C
2. ~ A
3. ∴ CВот аргумент, написанный на нашем символическом языке.Я не знаю, что означают A, B и C (то есть, какие атомарные предложения они обозначают), но это не имеет значения, потому что мы можем определить, верен ли аргумент, не зная, что A, B и C иметь в виду. A, B и C могут быть любыми атомарными предложениями. Если эта форма аргумента недействительна, то какое бы значение мы ни дали A, B и C, аргумент всегда будет недействительным. С другой стороны, если эта форма аргумента действительна, то какое бы значение мы ни придали A, B и C, аргумент всегда будет действительным.
Первое, что нужно осознать в этом аргументе, — это то, что существует три атомарных предложения: A, B и C. А это означает, что наша таблица истинности будет иметь 8 строк, а не только 4 строки, как наша последняя таблица истинности. Причина, по которой нам нужно 8 строк, заключается в том, что для представления каждого логически возможного сценария, когда мы работаем с тремя различными предложениями, требуется вдвое больше строк. Вот простая формула, которую вы можете использовать, чтобы определить, сколько строк нужно вашей таблице истинности:
2n (где n — количество атомарных предложений)
Вы читали эту формулу «двойка в n-й степени.Итак, если у вас есть одно атомарное утверждение (как в таблице истинности для отрицания), ваша таблица истинности будет иметь только две строки. Если у вас есть два атомарных предложения, в нем будет четыре строки. Если у вас есть три атомарных предложения, в нем будет 8 строк. Количество необходимых строк растет экспоненциально по мере линейного роста числа атомарных предложений. В таблице ниже представлены те же отношения, что и в приведенной выше формуле:
Количество атомных предложений Количество строк в таблице истинности 1 2 1 4 3 8 4 16 5 32 Итак, наша таблица истинности для приведенного выше аргумента должна иметь 8 строк.Вот как выглядит эта таблица истинности:
A Б С (A v B) против C ~ А С Т Т Т Т Т F Т F Т Т F F Ф Т Т Ф Т F Ф F Т Ф F F Вот важный момент, на который следует обратить внимание при настройке таблицы истинности.Вы должны убедиться, что ваши справочные столбцы фиксируют каждое отдельное возможное присвоение значений истинности. Один из способов убедиться в этом — следовать одному и тому же шаблону каждый раз при построении таблицы истинности. Не существует единственного правильного способа сделать это, но вот как я это делаю (и рекомендую вам сделать это тоже). Постройте ссылочные столбцы так, чтобы атомарные предложения располагались в алфавитном порядке слева направо. Затем в крайнем правом столбце ссылки (столбец C выше) чередуйте каждую строку с истинным и ложным до самого низа.В ссылочном столбце слева от него (столбец B выше) чередуйте две строки — true, две строки — false, вплоть до самого низа. В следующем столбце слева (столбец A выше) чередуйте 4 истинных, 4 ложных до самого низа.
Следующим шагом является определение истинности посылок и заключения. Обратите внимание, что наша первая посылка — более сложное предложение, состоящее из двух дизъюнкций. Главный оператор — это вторая дизъюнкция, поскольку две основные группы, обозначенные круглыми скобками, — это «A v B» и «C».Обратите внимание, однако, что мы не можем вычислить значения истинности главного оператора предложения, пока не выясним значения истинности левого дизъюнкта, «A v B.» Вот с чего нам нужно начать. Таким образом, в приведенной ниже таблице истинности я заполнил значения истинности непосредственно под частью предложения «A v B», используя значения истинности, которые я присвоил A и B в справочных столбцах. Как вы можете видеть в таблице истинности ниже, каждая строка истинна, за исключением последних двух строк, которые ложны, поскольку дизъюнкция ложна только тогда, когда оба дизъюнкта ложны.(Если вам нужно просмотреть таблицу истинности на предмет дизъюнкции, см. Раздел 2.3.)
A Б С (A v B) против C ~ А С Т Т Т Т Т Т F Т Т F Т Т Т F F Т Ф Т Т F Ф Т F F Ф F Т F Ф F F F Теперь, когда мы выяснили значения истинности левого дизъюнкта, мы можем вычислить значения истинности под главным оператором (которые я выделил жирным шрифтом в приведенной ниже таблице истинности).Два столбца, на которые вы смотрите, чтобы определить значения истинности главного оператора, — это столбец «A v B», который мы только что выяснили выше, и столбец ссылки «C» слева. Крайне важно понимать, что значения истинности под «A v B» не имеют значения, если мы выяснили значения истинности под основным оператором предложения. Этот столбец был лишь средством достижения цели (окончанием определения главного оператора), поэтому я выделил их серым цветом, чтобы подчеркнуть, что мы больше не обращаем на них внимания.(Когда вы создаете свои собственные таблицы истинности, вы можете даже захотеть стереть эти вспомогательные столбцы после того, как вы определили значения истинности основного оператора предложения. Или вы можете просто захотеть обвести значения истинности под основным оператором, чтобы отличить их от остальных.)
A Б С (A v B) против C ~ А С Т Т Т т т Т Т F т т Т F Т т т Т F F т т Ф Т Т т т Ф Т F т т Ф F Т Ф Т Ф F F Ф. Ф. Наконец, мы заполним оставшиеся два столбца, что очень просто.Все, что нам нужно сделать для «~ A», — это отменить значения истинности, которые мы присвоили нашему ссылочному столбцу «A». И все, что нам нужно сделать для последнего столбца «C», это просто дословно повторить значения истинности, которые мы присвоили нашему справочному столбцу «C».
A Б С (A v B) против C ~ А С Т Т Т т т F Т Т Т F т т F F Т F Т т т F Т Т F F т т F F Ф Т Т т т Т Т Ф Т F т т Т F Ф F Т Ф Т т т Ф F F Ф. Ф. Т F Приведенная выше таблица истинности завершена.Следующим шагом является применение проверки достоверности таблицы истинности, чтобы определить, является ли аргумент допустимым или недопустимым. Помните, что мы ищем ряд, в котором предпосылки верны, а вывод ложен. Если мы находим такую строку, аргумент недействителен. Если мы не найдем такой строки, значит, аргумент верен. Применяя это определение к приведенной выше таблице истинности, мы видим, что аргумент недействителен из-за 6-й строки таблицы (которую я выделил). Таким образом, объяснение того, почему этот аргумент неверен, состоит в том, что шестая строка таблицы показывает сценарий, в котором оба предположения верны, а вывод ложен.
Упражнение
Используйте проверку достоверности таблицы истинности, чтобы определить, действительны или недействительны следующие аргументы.
1.
1. A v B
2. B
3. ∴ ~ A2.
1. A ⋅ B
2. ∴ A v B3.
1. ~ C
2. ~ (C v A)4.
1. (A v B) ⋅ (A v C)
2. ~ A
3. ∴ B v C5 .
1. R ⋅ (T v S)
2. T
3.∴ ~ S6 .
1. A v B
2. ∴ A ⋅ B7.
1. ~ (A ⋅ B)
2. ∴ ~ A v ~ B8.
1. ~ (A v B)
2. ∴ ~ A v ~ B9.
1. (R v S) ~ D
2. ~ R
3. ∴ S ⋅ ~ DРуководство по главам
Пропозициональная логика
Основными компонентами логики высказываний являются утверждения.
A. Логические операторы и Переводы
Там есть два типа операторов: простые и сложные или составные.
А простой оператор — это оператор, который не содержит другого оператора в качестве составная часть. Эти утверждения представлены заглавными буквами A – Z.
А составной оператор содержит по крайней мере один простой оператор как компонент вместе с логическим оператором или связками .
Там пять составных типов, представленных логическими операторами:
Составной тип
Отказ
Соединение
Дизъюнкция
Условно
Двуусловная
Оператор
~
•
v
⊃
≡
Имя оператора
Тильда
точка
Клин
Подкова
Тройной стержень
Б.Составные отчеты
Здесь четыре правила, которые помогут организовать ваше представление о переводе сложных выписки:
- Помните, что каждый оператор , за исключением , отрицание всегда помещается между операторами.
- Тильда всегда ставится слева от того, что нужно отрицать.
- Тильда никогда не ходит, мимо сам, между двумя утверждениями.
- Скобки, скобки и фигурные скобки необходимы, чтобы исключить двусмысленность в сложном утверждение.Рассматривайте любой тип скобок как средство группировки как единое целое. единая единица сложное высказывание как часть более крупного сложного высказывания.
подписок эти правила гарантируют, что составной оператор является правильно построенной формулой .
Там всегда есть только один главный оператор в любом операторе, и этот оператор либо один из четырех, которые появляются между утверждениями, либо тильда которое появляется в перед отрицанием утверждения.
C. Функции истины
Каждые Простое утверждение имеет значение истинности : оно либо истинно, либо ложно.
А составное утверждение также имеет значение истинности. Это функция простого утверждения в сочетании со смыслом данных операторов.
Отрицание говорит нам: «Это не случай, который… »
Соединение говорит нам: «Оба … дело «. Союзы верны только тогда, когда верны оба союза.
Соединение: п
кв
р • кв
Т
Т
Т
Т
Факс
Факс
Ф
Т
Факс
Ф
Факс
Факс
Дизъюнкция говорит нам, что «На по крайней мере, один случай … »Дизъюнкции ложны только тогда, когда оба дизъюнкта ложный.
Дизъюнкция: п
кв
p v q
Т
Т
Т
Т
Факс
Т
Ф
Т
Т
Ф
Факс
Факс
А условный оператор отражает концепцию действительности: если антецедент верно, консеквент не может быть ложным.Таким образом, условное утверждение — это только ложно, когда истинный антецедент подразумевает ложный следствие.
Условно: п
кв
п в
Т
Т
Т
Т
Факс
Факс
Ф
Т
Т
Ф
Факс
Т
В двояковыпуклый говорит нам, что «либо оба варианта верны, либо ни то, ни другое…» Таким образом, двусловное утверждение истинно, когда истинны оба утверждения или оба. ложны.
Двуусловная: п
кв
п в
Т
Т
Т
Т
Факс
Факс
Ф
Т
Факс
Ф
Факс
Т
Д.Таблицы истинности предложений
Когда мы строим таблицу истинности , чтобы определить возможные значения истинности Для данного заявления важно знать:
- То количество простые операторы в составном операторе определяют количество строк в таблица истинности. Например, составной оператор с двумя простыми операторами требуется четырехстрочная таблица истинности. Составное утверждение с тремя простыми Для операторов требуется восьмистрочная таблица истинности.
- Что главный оператор каждого оператора должен вычисляться в соответствии с порядком операции.Главный оператор определяет окончательные значения истинности заявление, и, как таковые, его значения рассчитываются в последнюю очередь.
E. Условные и Неконфликтные отчеты
А условное заявление верно, для основного оператора, по крайней мере, для одного строка таблицы истинности и ложь по крайней мере в одной строке таблицы истинности. В Другими словами, такое утверждение иногда верно, а иногда — ложно.
А неконтролируемое утверждение не зависит от истинностных значений составные части.Такое утверждение либо всегда верно (тавтология ) или всегда ложно ( внутреннее противоречие ).
F. Логическая эквивалентность, Противоречивые, непротиворечивые и непоследовательные утверждения
Два или более операторов логически эквивалентны , если они имеют одинаковые значения под основным оператором в каждой строке таблицы истинности.
Два утверждения противоречивы, когда они никогда не верны или никогда не ложны, под основным оператором, одновременно в той же строке таблицы истинности.
Два или более утверждений непротиворечивы когда они верны, в соответствии с основным оператор, по крайней мере, в одной строке таблицы истинности.
Два или более утверждений противоречивых , когда они не соответствуют действительности, в соответствии с основной оператор одновременно даже с одной строкой таблицы истинности.
G. Таблицы истинности для Аргументы
Правда таблицы также могут быть построены для аргументов, чтобы определить достоверность или недействительности путем вычисления значений истинности по каждой посылке и заключение.
Когда есть даже одна строка таблицы истинности, на которой все предпосылки истинны в то время как вывод ложный, аргумент недействителен. Таблица истинности, в которой нет ни одной строки аргумента, на котором все предпосылки верны пока вывод ложный, действителен.
H. Таблицы косвенной истины
таблица косвенной истинности — мощный и удобный инструмент для проверки достоверность аргумента:
- Предположим, что помещение верны, а вывод неверен.Другими словами, предположим, что аргумент недействительным, поставив букву Т под главного оператора каждого помещения, а F под основным оператором заключения.
- Расчет в обратном направлении от предполагаемого значения до составных элементов заявления.
- Если можно все посчитать элементов, не противореча определению истинности для любого данного оператор, аргумент недействителен .
- Если вы не можете рассчитать все элементы, не противореча истине определений для данного оператора, аргумент действителен .
Комбинационных логических схем с использованием логических вентилей
В отличие от последовательных логических схем, выходы которых зависят как от их текущих входов, так и от их предыдущего состояния выхода, что дает им некоторую форму памяти . Выходы комбинационных логических схем определяются только логической функцией их текущего состояния входа, логического «0» или логической «1», в любой данный момент времени.
В результате схемы комбинационной логики не имеют обратной связи, и любые изменения сигналов, подаваемых на их входы, немедленно влияют на выход.Другими словами, в комбинационной логической схеме выход всегда зависит от комбинации ее входов. Таким образом, комбинационная схема без памяти .
Таким образом, если состояние одного из его входов изменится с 0-1 или 1-0, то также будет и результирующий выход, поскольку схемы комбинационной логики по умолчанию не имеют «памяти», «синхронизации» или «петель обратной связи» в своей конструкции.
Комбинационная логика
Комбинационные логические схемы состоят из элементов базовой логики И-НЕ, ИЛИ-ИЛИ или НЕ, которые «комбинируются» или соединяются вместе для создания более сложных схем переключения.Эти логические вентили являются строительными блоками комбинационных логических схем. Примером комбинационной схемы является декодер, который преобразует данные двоичного кода, присутствующие на его входе, в несколько различных выходных строк, по одной, создавая на выходе эквивалентный десятичный код.
Комбинационные логические схемы могут быть очень простыми или очень сложными, и любая комбинационная схема может быть реализована только с логическими вентилями И-НЕ и ИЛИ-ИЛИ, поскольку они классифицируются как «универсальные» вентили.
Три основных способа определения функции схемы комбинационной логики:
- 1.Логическая алгебра — формирует алгебраическое выражение, показывающее работу логической схемы для каждой входной переменной True или False, что приводит к выходу логической «1».
- 2. Таблица истинности — Таблица истинности определяет функцию логического элемента, предоставляя краткий список, который показывает все выходные состояния в табличной форме для каждой возможной комбинации входной переменной, с которой может столкнуться вентиль.
- 3. Логическая схема — это графическое представление логической схемы, которое показывает проводку и соединения каждого отдельного логического элемента, представленного определенным графическим символом, реализующим логическую схему.
и все три представления этих логических схем показаны ниже.
Поскольку схемы комбинационной логики состоят только из отдельных логических вентилей, их также можно рассматривать как «схемы принятия решений», а комбинационная логика представляет собой объединение логических вентилей вместе для обработки двух или более сигналов с целью создания по крайней мере одного выходного сигнала в соответствии с к логической функции каждого логического элемента. Общие комбинационные схемы, составленные из отдельных логических элементов, которые выполняют желаемое приложение, включают в себя мультиплексоров , демультиплексоров , кодеров , декодеров , Full и полусумматоров и т. Д.
Классификация комбинационной логики
Одно из наиболее распространенных применений комбинационной логики — в схемах типа мультиплексора и демультиплексора. Здесь несколько входов или выходов подключены к общей сигнальной линии, а логические элементы используются для декодирования адреса для выбора одного переключателя входа или выхода данных.
Мультиплексор состоит из двух отдельных компонентов, логического декодера и некоторых твердотельных переключателей, но прежде чем мы сможем обсудить мультиплексоры, декодеры и демультиплексоры более подробно, нам сначала нужно понять, как эти устройства используют эти «твердотельные переключатели» в своих дизайн.
Твердотельные переключатели
Стандартные логические устройства TTL, состоящие из транзисторов, могут пропускать сигнальные токи только в одном направлении, что делает их «однонаправленными» устройствами и плохой имитацией обычных электромеханических переключателей или реле. Однако некоторые коммутационные устройства CMOS, состоящие из полевых транзисторов, действуют как почти идеальные «двунаправленные» переключатели, что делает их идеальными для использования в качестве твердотельных переключателей.
Твердотельные переключателибывают разных типов и номиналов, и существует множество различных приложений для использования твердотельных переключателей.Их можно в основном подразделить на 3 различные основные группы для коммутационных приложений, и в этом разделе, посвященном комбинационной логике, мы рассмотрим только аналоговый тип переключателя , но принцип один и тот же для всех типов, включая цифровой.
Приложения для твердотельных коммутаторов
- Аналоговые переключатели — используются в коммутации данных и связи, коммутации видео и аудиосигналов, контрольно-измерительных приборах и схемах управления технологическими процессами и т. Д.
Цифровые коммутаторы- — высокоскоростная передача данных, коммутация и маршрутизация сигналов, Ethernet, LAN, USB и последовательная передача… и т. Д.
- Выключатели питания — источники питания и общие приложения для коммутации «резервного питания», переключение больших напряжений и токов… и т. Д.
Аналоговые двусторонние переключатели
Аналоговые или «Аналоговые» переключатели — это переключатели тех типов, которые используются для переключения токов данных или сигналов, когда они находятся в состоянии «ВКЛ», и блокируют их, когда они находятся в состоянии «ВЫКЛ». Быстрое переключение между состоянием «ВКЛ» и «ВЫКЛ» обычно контролируется цифровым сигналом, подаваемым на управляющий вентиль переключателя.Идеальный аналоговый переключатель имеет нулевое сопротивление в положении «ВКЛ» (или замкнут) и бесконечное сопротивление в положении «ВЫКЛ» (или разомкнут), а переключатели с R в положении ВКЛ. Обычно доступны значения менее 1 Ом.
Твердотельный аналоговый переключатель
Путем подключения N-канального MOSFET параллельно с P-канальным MOSFET позволяет сигналам проходить в любом направлении, что делает его «двунаправленным» переключателем, и в зависимости от того, проходит ли N-канальное или P-канальное устройство больший ток сигнала. будет зависеть от соотношения между входным и выходным напряжением.Два полевых МОП-транзистора включаются или выключаются двумя внутренними неинвертирующими и инвертирующими усилителями.
Типы контактов
Как и механические переключатели, аналоговые переключатели бывают разных форм или типов контактов, в зависимости от количества «полюсов» и «ходов», которые они предлагают. Таким образом, такие термины, как «SPST» (однополюсный одинарный ход) и «SPDT» (однополюсный двухходовой) также применимы к твердотельным аналоговым переключателям с «замыканием перед размыканием» и «размыканием перед замыканием». доступные конфигурации.
Типы аналоговых переключателей
Отдельные аналоговые переключатели могут быть сгруппированы вместе в стандартные пакеты ИС, чтобы сформировать устройства с несколькими конфигурациями переключения: SPST (однополюсный однополюсный) и SPDT (однополюсный, двухходовой), а также многоканальные мультиплексоры.
Наиболее распространенным и простым аналоговым переключателем в одном корпусе ИС является 74HC4066, который имеет 4 независимых двунаправленных переключателя «ВКЛ / ВЫКЛ» в одном корпусе, но наиболее широко используемые варианты аналогового переключателя КМОП описаны как «Мульти Двухсторонние двусторонние переключатели », иначе известные как ИС« Мультиплексор »и« Демультиплексор », и они обсуждаются в следующем руководстве.
Резюме комбинационной логики
Подводя итог, Комбинационные логические схемы состоят из входов, двух или более основных логических вентилей и выходов. Логические элементы объединены таким образом, что состояние выхода полностью зависит от состояний входа. Комбинационные логические схемы не имеют «памяти», «тайминга» или «петель обратной связи», там работа происходит мгновенно. Комбинационная логическая схема выполняет операцию, логически назначенную логическим выражением или таблицей истинности.
Примеры общих комбинационных логических схем: полусумматоры, полные сумматоры, мультиплексоры, демультиплексоры, кодеры и декодеры, все из которых мы рассмотрим в следующих нескольких руководствах.
Трехзначная логика (3VL) — цель, преимущества и особые случаи
trueunknownfalseSQL использует трехзначную логику : помимо true и false , результатом логических выражений также может быть unknown .Трехзначная логика SQL является следствием поддержки
null
для отметки отсутствующих данных. Если значениеnull
влияет на результат логического выражения, результатом будет не true или false , а unknown .Трехзначная логика является неотъемлемой частью Core SQL, и ей следует почти каждая база данных SQL.
Содержание:
- Сравнение с
null
- Логические операции с участием Неизвестно
- Общее правило:
, где
,,
,, когда
, и т. Д.- Исключение: Проверочные ограничения
- Связанные функции
- Двоичные решения, основанные на трехзначных результатах
- Интерактивный
is [not] (true | false | unknown)
Emulator- Совместимость
Сравнения с
null
Значение SQLnull
в основном означает, что « может быть любым ». Следовательно, невозможно сказать, является ли сравнение сnull
истинным или ложным .Здесь появляется третье логическое значение, неизвестно . Неизвестно означает « истинное или ложное , в зависимости отнулевых
значений».Таким образом, результатом каждого из следующих сравнений будет неизвестно :
NULL = 1 NULL <> 1 NULL> 1 NULL = NULL
Ничто не равно
null
. Дажеnull
не равноnull
, потому что каждыйnull
может быть другим.Вот почему SQL имеет предикат
is null
для проверки того, является ли значениеnull
или нет, ане отличается от предиката
для сравнения двух значений при обработке двух значенийnull
как одинаковых.Логические операции с участием
НеизвестноВ логических соединениях (
и
,или
) неизвестно ведет себя как значениеnull
при сравнении: Результатом будет неизвестно , если это зависит от операнда, который является неизвестно .В отличие от сравнений, этот принцип приводит к случаям, когда результатом логического соединения не является неизвестно , даже если один операнд — неизвестно . Причина в том, что результатом логического соединения является только неизвестно , если на самом деле зависит от операнда неизвестно .Рассмотрим следующий пример:
(NULL = 1) OR (1 = 1)
Хотя сравнение с
null
делает первый операнд операцииили
неизвестным , общий результат все равно остается true , потому что операцииили
являются true , как только , любой операнд становится true .Другой способ взглянуть на это — мысленно заменить каждое значение
null
вызовом функцииrandom ()
. Если общий результат выражения неизбежно один и тот же, независимо от того, какое значениеrandom ()
возвращает, результат, очевидно, не зависит от значенияnull
и, следовательно, не unknown .В приведенном выше примере вы можете принять значения 0 и 1 вместо
null
, чтобы сделать результат первого операнда ложным и истинным соответственно.Но результатом полного выражения будет true в обоих случаях — это не зависит от значения, которое вы принимаете дляnull
.Важно
Логическое значение неизвестно указывает, что результат на самом деле зависит от значения
null
.Аналогичный случай применяется к оператору
и
: соединенияи
являются ложными , как только любой операнд становится ложным . Таким образом, результатом следующего выражения будет false :(NULL = 1) AND (0 = 1)
Во всех остальных случаях любой неизвестный операнд для
, а не
,и
иили
заставляет логическую операцию возвращать unknown .Общее правило:
, где
,имеет
,, когда
и т. Д. unknownfalsetrue
, где
,имеет
, и, когда
предложений (например, вслучае
выражений) требуют истинных условий. Недостаточно, чтобы условие не было ложным .Следовательно, результатом следующего запроса всегда будет пустой набор:
SELECT col ОТ Т WHERE col = NULL
Результат сравнения equals с
null
— всегда unknown .Таким образом, предложениеwhere
отклоняет все строк.Используйте предикат
is null
для поискаnull
значений:WHERE col IS NULL
Odd Последствия:
P или нет P
не всегда true unknownfalsetrueAs the name “three unknownfalsetrue
As the name“ three unknownfalsetrue
As the name “three unknownfalsetrue
As the name -значная логика »предполагает, что в логических выражениях следует учитывать три значения. На первый взгляд следующий
, где пункт
выглядит тавтологией — i.е. условие, которое всегда истинно . Тем не менее, он ведет себя совершенно иначе, поскольку учитывает только два из трех возможных значений, а именно то, что условиеcol = NULL
равно true или false .ВЫБРАТЬ col ОТ Т ГДЕ col = NULL ИЛИ НЕ (col = NULL)
(1) Результат сравнения
col = null
— неизвестно в обоих случаях; (2)нет (неизвестно)
также неизвестно ; (3)или
оцениваются только как true , если один операнд равен true .Следовательно, условием всегда является неизвестно , так что предложениеwhere
отклоняет все строки. Это явно противоположно тому, что подсказывает двузначная логика.Нечетное Последствие:
не в (null,…)
никогда не верноРассмотрим следующий пример:
trueunknownfalseГДЕ 1 НЕ В (NULL)
Чтобы понять этот пример, прочтите
null
как « может быть любым ”илиrandom ()
, если хотите.Затем попробуйте найти два значения дляnull
, которые делают выражение истинным и ложным соответственно. Возьмем0
и1
. Для0
выражение становится1 НЕ В (0)
, что соответствует истинному . Для1
выражение становится1 НЕ В (1)
, что явно соответствует ложному . Таким образом, результатом исходного выражения является неизвестно , потому что оно изменяется, еслиnull
заменяется другими значениями.Если мы расширим этот пример, мы быстро увидим, что результат
не в предикатах
, содержащих значениеnull
, никогда не будет истинным :WHERE 1 NOT IN (NULL, 2)
Это выражение снова неизвестно , потому что замена
нулевым
другими значениями (например,0
и1
) все еще влияет на результат. Тем не менее легко показать, чтоне в предикатах
, которые содержат значениеnull
может быть false :WHERE 1 NOT IN (NULL, 1)
Независимо от того, какое значение вы подставляете для
null
(0
,1
или любое другое значение) результат всегда false .Совет
Не разрешайте
обнулять
в, а не в списках
.При использовании подзапроса рассмотрите возможность использования
не существует
вместоне в
или добавьте условие, где
в подзапрос, который удаляет возможныенулевых значений
.Исключение: ограничения проверки
falsetrueunknown
Ограничения проверки
следуют обратной логике: они отклоняют false , а не принимают true , как это делают другие предложения.Следовательно,проверка
ограничений принимает истинных и неизвестных .В следующем примере столбец
a
илиb
может иметь значение больше 10, если другой столбец имеет значениеnull
:CREATE TABLE t ( ЧИСЛОВАЯ ПРОВЕРКА (a> = 0), b ЧИСЛОВАЯ ПРОВЕРКА (b> = 0), ПРОВЕРИТЬ (a + b <= 10) )
Проверки истинности:
is [not] (true | false | unknown)
Подобно
is null
, стандарт SQL определяет дополнительную функцию для непосредственной проверки всех трех значений истинности:is [not] (true | false | unknown)
Обратите внимание, что этот тест
is
никогда не возвращает unknown (очень похоже наis [not] null
).« Совместимость » ниже описывает, какие базы данных поддерживают эту функцию.
Логический тип данных: литералы
истина
,ложь
инеизвестно
Едва поддерживаемая дополнительная функция T031, «БУЛЕВЫЙ тип данных», вводит ключевые слова
истина
,ложь
инеизвестно
за пределами- это предикат
.Обратите внимание, что истинное значение unknown неотличимо от
null
для логического типа.В противном случае логический тип
имел бы четыре логических значения.
Разница между литералами
null
иunknown
состоит в том, чтоunknown
имеет типBoolean
, аnull
может принимать любой тип. Установка ограниченияnot null
на столбец типа SQLBoolean
делает его классическим двузначным логическим значением.Двоичные решения, основанные на трехзначных результатах
Трехзначная логика SQL откладывает двоичное решение, если логическое выражение не может быть определено как безусловно истинное или ложное .Однако, в конце концов, всегда есть действительно двоичное решение, такое как принятие или отклонение строки из-за предложения
, где
.Как объяснялось выше, стандарт SQL обычно обрабатывает unknown как false , когда ему в конечном итоге приходится принимать двоичное решение (исключение: проверочные ограничения). Думайте об этом как о подразумеваемом тесте
истинно
на каждом, где
,-
и так далее.Обработка неизвестного как ложного - не всегда правильный выбор.Если вам нужно другое поведение, просто используйте явный тест
is [not] (true | false | unknown)
.Рассмотрим следующий пример, в котором
nullif
используется для предотвращения потенциальной ошибки деления на ноль . Следовательно, условие, где
, становится неизвестно для строк, гдеd
равно нулю (0
), и эти строки отклоняются предложениемwhere
.ВЫБРАТЬ n, d ОТ Т WHERE n / NULLIF (d, 0)> 1
Если вам нужно также вернуть строки с
d = 0
, вы можете добавитьOR d = 0
к предложениюwhere
.Конечно, это правильное решение, но оно требует понимания состояния. Более общий подход состоит в том, чтобы повторить все выражениеnull
-able, чтобы явно включить случайnull
:OR (n / NULLIF (d, 0)) IS NULL
. Тем не менее, это не совсем элегантно.Идиоматический способ свести трехзначный результат к двузначному - это проверка истинности
is [not] (true | false | unknown)
:WHERE ( n / NULLIF (d, 0 )> 1 ) НЕ ЛОЖЬ
Это принимает оба результата - истинно и неизвестно - и логически эквивалентно решениям, использующим соединение
или
.Преимущество состоит в том, что он не требует повторения или семантического понимания состояния.Подсказка
Во избежание двусмысленности поместите условие в скобки:
(… ) НЕ ЛОЖЬ
Предикат
не ложь
принадлежит дополнительной функции F571, «Проверка истинности», который до сих пор не поддерживается. Тем не менее, можно реализовать ту же логику, без повторения частей выражения, практически во всех базах данных SQL с выражениемcase
:WHERE CASE WHEN NOT ( n / NULLIF (d, 0)> 1 ) ТО 0 ЕЩЕ 1 END = 1
Это выражение явно проверяет случай false (
, если не (…)
) и использует предложениеelse
для обнаружения двух других случаев ( true и unknown ).Это позволяет выполнить требуемое сопоставление без повторения какой-либо части условия. Числовые литералы были произвольно выбраны для представления « ложных » (0
) и « истинных или неизвестных » (1
). Заключительное сравнение (= 1
) всегда равно true или false , потому что ни один из операндов никогда не может статьnull
.Обходной путь с
case
может сопоставить unknown с true или false .Это охватывает четыре из шести возможных случаев:is [not] (true | false)
. Два оставшихся случая,неизвестно
ине неизвестно
, не могут быть реализованы с использованиемcase
без повторения некоторых частей логического выражения.Для эмуляции теста
is [not] unknown
можно использовать тот факт, что unknown совпадает с null дляBoolean
значений. В принципе, можно использоватьis [not] null
для проверки unknown .На практике это вряд ли полезно, потому что большинство баз данных, которые не поддерживаютis [not] unknown
, также не поддерживают типBoolean
.Это означает, что вы должны протестировать операнды сравнения для
null
и логически объединить результат.Это демонстрирует следующий пример:
(
) IS UNKNOWN Это логически эквивалентно:
IS NULL ИЛИ IS NULL Для теста
trueunknownfalseis not unknown
вы должны использоватьis not null
tests и объединить их с логической операциейи
.Щелкните значения истинности на картинке, чтобы получить выражения SQL, которые отображают эти значения на true , а другие на false .
Совместимость
Трехзначная логика была в стандарте SQL с самого начала. Это неотъемлемый и широко поддерживаемый аспект SQL.
SQL: 1999 добавил две связанные дополнительные функции:
F571, «Проверка истинности»: расширяет оператор
is
для всех трех логических значений.T031, «тип данных BOOLEAN»: определяет тип данных
Boolean
, агрегатные функциикаждые
,любые
инекоторые
, а также литералыtrue
,false
инеизвестно
(кроме следующего- [не]
).sql - НЕ В И НЕ СУЩЕСТВУЕТ
База данных модели таблицы
Предположим, у нас есть две следующие таблицы в нашей базе данных, которые образуют связь между таблицами "один ко многим".
Таблица
student
является родительской, а таблицаstudent_grade
является дочерней, поскольку в ней есть столбец внешнего ключа student_id, ссылающийся на столбец первичного ключа id в таблице учеников.Таблица учеников
содержит следующие две записи:
| id | first_name | last_name | admission_score | | ---- | ------------ | ----------- | ----------------- | | 1 | Алиса | Смит | 8.95 | | 2 | Боб | Джонсон | 8.75 |
В таблице
student_grade
хранятся оценки, полученные учащимися:| id | class_name | сорт | student_id | | ---- | ------------ | ------- | ------------ | | 1 | Математика | 10 | 1 | | 2 | Математика | 9,5 | 1 | | 3 | Математика | 9,75 | 1 | | 4 | Наука | 9,5 | 1 | | 5 | Наука | 9 | 1 | | 6 | Наука | 9.25 | 1 | | 7 | Математика | 8.5 | 2 | | 8 | Математика | 9.5 | 2 | | 9 | Математика | 9 | 2 | | 10 | Наука | 10 | 2 | | 11 | Наука | 9,4 | 2 |
СУЩЕСТВУЕТ SQL
Допустим, мы хотим собрать всех учеников, получивших 10 баллов по математике.
Если нас интересует только идентификатор студента, мы можем выполнить такой запрос:
ВЫБРАТЬ student_grade.student_id ИЗ student_grade КУДА student_grade.grade = 10 И student_grade.class_name = 'Математика' СОРТИРОВАТЬ ПО student_grade.student_id
Но приложение заинтересовано в отображении полного имени студента , а не только идентификатора, поэтому нам также нужна информация из таблицы
student
.Чтобы отфильтровать записи учащихся , которые имеют 10 баллов по математике, мы можем использовать оператор EXISTS SQL, например:
ВЫБРАТЬ id, first_name, last_name ИЗ ученик ГДЕ СУЩЕСТВУЕТ ( ВЫБРАТЬ 1 ИЗ student_grade КУДА student_grade.student_id = student.id И student_grade.grade = 10 И student_grade.class_name = 'Математика' ) ЗАКАЗАТЬ ПО id
При выполнении вышеуказанного запроса мы видим, что выбрана только строка Алисы:
| id | first_name | last_name | | ---- | ------------ | ----------- | | 1 | Алиса | Смит |
Внешний запрос выбирает столбцы строки
student
, которые мы хотим вернуть клиенту. Однако предложение WHERE использует оператор EXISTS со связанным внутренним подзапросом.Оператор EXISTS возвращает истину, если подзапрос возвращает хотя бы одну запись, и ложь, если строка не выбрана. Механизм базы данных не должен полностью выполнять подзапрос. Если совпадает одна запись, оператор EXISTS возвращает true, и выбирается связанная другая строка запроса.
Внутренний подзапрос коррелирован, потому что столбец student_id таблицы
student_grade
сопоставляется со столбцом id внешней таблицы student.SQL НЕ СУЩЕСТВУЕТ
Допустим, мы хотим выбрать всех учащихся, у которых нет оценок ниже 9.Для этого мы можем использовать NOT EXISTS, что сводит на нет логику оператора EXISTS.
Следовательно, оператор NOT EXISTS возвращает истину, если базовый подзапрос не возвращает записи. Однако, если внутреннему подзапросу соответствует одна запись, оператор NOT EXISTS вернет false, и выполнение подзапроса может быть остановлено.
Чтобы сопоставить все записи учеников, не связанные с student_grade, со значением ниже 9, мы можем выполнить следующий запрос SQL:
ВЫБРАТЬ id, first_name, last_name ИЗ ученик ГДЕ НЕ СУЩЕСТВУЕТ ( ВЫБРАТЬ 1 ИЗ student_grade КУДА student_grade.student_id = student.id И student_grade.grade <9 ) ЗАКАЗАТЬ ПО id
При выполнении вышеуказанного запроса мы видим, что соответствует только запись Алисы:
| id | first_name | last_name | | ---- | ------------ | ----------- | | 1 | Алиса | Смит |
Таким образом, преимущество использования операторов SQL EXISTS и NOT EXISTS состоит в том, что выполнение внутреннего подзапроса может быть остановлено до тех пор, пока будет найдена соответствующая запись.
.