Построение таблицы истинности онлайн | СКНФ | СДНФ | Полином Жегалкина | Таблица истинности булевой функции онлайн | Programforyou

Всем привет! Сегодня рассмотрим основные логические операции. Составим для каждой операции таблицу истинности, и для наглядного представления каждой логической операции нарисуем Круги Эйлера. Звучит страшно, особенно если вы видите все это впервые, но вы читайте дальше и все станет понятно! А еще не забывайте подписываться на мой канал, чтобы не пропустить новые полезные публикации.

1. Коньюкция

Коньюкция – логическое умножение. Логическое высказывание истинно тогда и только тогда, когда истины оба исходных высказывания.

Способы обозначения:

  • А и В
  • А ∧ В
  • А * В
  • А & В
Таблица истинности для логического И

Таблица истинности для логического И

Из таблицы истинности видно, что логическое выражение из двух переменных истинно только в одном случае, когда обе переменные истины.

На кругах Эйлера мы можем наглядно продемонстрировать отношения между подмножествами. Например у нас есть два подмножества А и В и нам нужно найти такое значение которое будет принадлежать подмножеству А и подмножеству В.

А ∧ В. Круги Эйлера

А ∧ В. Круги Эйлера

Такие значения для конъюнкции находятся на заштрихованной части.

Ваш комментарий к ответу:

Здравствуйте! На сайте Otvet-Master.ru собраны ответы и решения на все виды школьных задач и университетских заданий. Воспользуйтесь поиском решений на сайте или задайте свой вопрос онлайн и абсолютно бесплатно.

Создание узловCreating Nodes

Начнем с относительно простого варианта.Let’s start relatively simply again. Мы будем использовать выражение сложения, которое применялось в этих разделах:We’ll use the addition expression I’ve been working with throughout these sections:

Expression<Func<int>> sum = () => 1 + 2;

Чтобы построить дерево выражения, необходимо создать конечные узлы.To construct that expression tree, you must construct the leaf nodes.Конечные узлы являются константами, поэтому для их создания можно использовать метод Expression.Constant:The leaf nodes are constants, so you can use the Expression.Constant method to create the nodes:

var one = Expression.Constant(1, typeof(int));var two = Expression.Constant(2, typeof(int));

Затем вы создадите выражение сложения:Next, you’ll build the addition expression:

var addition = Expression.Add(one, two);

После этого можно создать лямбда-выражение:Once you’ve got the addition expression, you can create the lambda expression:

var lambda = Expression.Lambda(addition);

Это очень простое лямбда-выражение, так как оно не содержит аргументов.This is a very simple lambda expression, because it contains no arguments.Далее в этом разделе вы узнаете, как сопоставлять аргументы с параметрами и создавать более сложные выражения.Later in this section, you’ll see how to map arguments to parameters and build more complicated expressions.

Для выражений, которые так же просты, как и это, можно совместить все вызовы в одну инструкцию:For expressions that are as simple as this one, you may combine all the calls into a single statement:

var lambda = Expression.Lambda( Expression.Add( Expression.Constant(1, typeof(int)), Expression.Constant(2, typeof(int)) ));

Видеоинструкция к калькулятору

Используемые символы

В качестве переменных используются буквы латинского и русского алфавитов (большие и маленькие), а также цифры, написанные после буквы (индекс переменной). Таким образом, именами переменных будут: a, x, a1, B, X, X1, Y1, A123 и так далее.

Для записи логических операций можно использоватькак обычные символы клавиатуры (*, +, !, ^, ->, =), так и символы, устоявшиеся в литературе (∧, ∨, ¬, ⊕, →, ≡). Если на вашей клавиатуре отсутствует нужный символ операции, то используйте клавиатуру калькулятора (если она не видна, нажмите “Показать клавиатуру”), в которой доступны как все логические операции, так и набор наиболее часто используемых переменных.

Для смены порядка выполнения операций используются круглые скобки ().

Обозначения логических операций

  • И (AND): & • ∧ *
  • ИЛИ (OR): ∨ +
  • НЕ (NOT): ¬ !
  • Исключающее ИЛИ (XOR): ⊕ ^
  • Импликация: -> → =>
  • Эквивалентность: = ~ ≡
  • Штрих Шеффера: ↑ |
  • Стрелка Пирса:

Что умеет калькулятор

  • Строить таблицу истинности по функции
  • Строить таблицу истинности по двоичному вектору
  • Строить совершенную конъюнктивную нормальную форму (СКНФ)
  • Строить совершенную дизъюнктивную нормальную форму (СДНФ)
  • Строить полином Жегалкина (методами Паскаля, треугольника, неопределённых коэффициентов)
  • Определять принадлежность функции к каждому из пяти классов Поста
  • Строить карту Карно
  • Минимизировать ДНФ и КНФ
  • Искать фиктивные переменные

Построение дерева выражений

Построение дерева происходит путем чтения постфиксного выражения по одному символу за раз. Если символ является операндом, создается одноузловое дерево, и его указатель помещается в стек . Если символ является оператором, указатели на два дерева T1 и T2 извлекаются из стека и формируется новое дерево, корнем которого является оператор, а левый и правый дочерние элементы которого указывают на T2 и T1 соответственно. Затем указатель на это новое дерево помещается в стек.

пример

Ввод в постфиксной нотации: ab + cde + * * Поскольку первые два символа являются операндами, создаются одноузловые деревья, и указатели на них помещаются в стек. Для удобства стек будет расти слева направо.

Стек растет слева направо

Следующий символ – “+”. Он выталкивает два указателя на деревья, формируется новое дерево, и указатель на него помещается в стек.

Формирование нового дерева

Затем считываются c, d и e. Для каждого создается одноузловое дерево, и указатель на соответствующее дерево помещается в стек.

Создание одноузлового дерева

Далее читается знак «+», и последние два дерева объединяются.

Теперь читается “*”. Выскакивают два последних указателя на дерево, и формируется новое дерево со знаком «*» в качестве корня.

Формирование нового дерева с корнем

Наконец, читается последний символ. Два дерева объединяются, и указатель на последнее дерево остается в стеке.

Шаги по построению дерева выражений ab + cde + * *

Что такое булева функция

Булева функция f(x1, x2, … xn) — это любая функция от n переменных x1, x2, … xn, в которой её аргументы принимают одно из двух значений: либо 0, либо 1, и сама функция принимает значения 0 или 1. То есть это правило, по которому произвольному набору нулей и единиц ставится в соответствие значение 0 или 1. Подробнее про булевы функции можно посмотреть на Википедии.

5. Инверсия

Инверсия – отрицание или логическое НЕ. Если логическое высказывание А истинно, то “не А” – ложно, и наоборот. Обозначается ¬А или А с чертой сверху.

Алгебра логики. Таблицы истинности. Круги Эйлера.

Сегодня мы узнали пять простых логических операций. В дальнейшем мы с разберем законы алгебры логики и научимся решать задачи по этой теме! А пока совету проверить как вы усвоили материал из этой статьи и пройти небольшой тест.

Рейтинг
( 1 оценка, среднее 5 из 5 )
Загрузка ...