Как найти количество логических функций

In the below article, we are going to find the number of Boolean Functions possible from the given sets of binary number.

Statement-1:
Suppose two sets are set ‘A’ = {1, 2, 3, 4, …….., n} where each number will be either ‘0’ or ‘1’ and hence the total number of boolean variable possible will be 2^n and set ‘B’ = {0, 1}. Now the number of possible boolean function when counting is done from set ‘A’ to ‘B’ will be 2^{(2^n)}.

Explanation:
As we know that boolean variable is either ‘0’ or ‘1’ and in the set ‘A’ there are ‘n’ numbers and each number will be either ‘0’ or ‘1’ and hence the total number of possible boolean variable are 2^n. Now set ‘A’ contain 2^n boolean variable and set ‘B’ contain 2 boolean variable.

This can be understood with help of below diagram:

Each element of set ‘A’ makes a function with each element of set ‘B’ hence one element of set ‘A’ makes two function with set ‘B’ and hence total number of possible boolean functions are 2^{(2^n)} where 2^n is the number of element in set ‘A’.

Statement-2:
Suppose two sets of ternary variable are set ‘A’ = {1, 2, 3, 4, …….., n} where each number will be either ‘0’ or ‘1’ or ‘2’ and hence the total number of ternary variable possible will be 3^n and set ‘B’ = {0, 1}. Now the number of possible boolean function when counting is done from set ‘A’ to ‘B’ will be 2^{(3^n)}.

Explanation:
As we know that ternary variables are ‘0’ or ‘1’ or ‘2’ and in the set ‘A’ there are ‘n’ numbers and each number will be either ‘0’ or ‘1’ or ‘2’ and hence the total number of possible ternary variables are 3^n. Now set ‘A’ contain 3^n ternary numbers and set ‘B’ contain 2 boolean variable.

This can be understood with help of below diagram:

Each element of set ‘A’ makes a function with each element of set ‘B’ hence one element of set ‘A’ makes two functions with set ‘B’ and hence the total number of possible boolean functions are 2^{(3^n)} where 3^n is the number of elements in set ‘A’.

Note:

Similarly for a set ‘A’ of ‘n’ numbers of k-ary variable and set ‘B’ of p-ary variable then the total number of p-ary possible function will be p^{(k^n)}.

Last Updated :
25 Nov, 2019

Like Article

Save Article

Логические функции.

Заметим, что значение логической формулы определяется значениями входящих в формулу переменных. Таким образом, каждая формула может рассматриваться как способ задания функции алгебры логики.

Логической функцией называют функцию, аргументы которой и сама функция принимают значения ноль или единица.

Логические функции могут быть заданы аналитически (с помощью логической формулы) или табличным способом.

Выясним количество логических функций для двух аргументов.

Совокупность значений логической формулы в последнем столбце трактуется как строка нулей и единиц (бинарная строка) длины n. Заметим, что существует ровно 2n различных бинарных строк длины n. Таблица истинности для логической формулы, включающей две переменные, содержит 4 строки. Таким образом, существует 16 различных логических функций от двух аргументов.

x y f1 f2 f3 f4 f5 f6 f7 f8
0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 1 1 1 1
1 0 0 0 1 1 0 0 1 1
1 1 0 1 0 1 0 1 0 1
x y f9 f10 f11 f12 f13 f14 f15 f16
0 0 1 1 1 1 1 1 1 1
0 1 0 0 0 0 1 1 1 1
1 0 0 0 1 1 0 0 1 1
1 1 0 1 0 1 0 1 0 1
  • f1(x, y) = 0 — константа «ложь»
  • f2(x, y) = x ∧ y — конъюнкция
  • f3(x, y) = ¬ (x ⇒ y) — отрицание импликации
  • f4(x, y) = х — функция равна первому аргументу
  • f5(x, y) = ¬ (y ⇒ x) — отрицание обратной импликации
  • f6(x, y) = у — функция равна второму аргументу
  • f7(x, y) = x ⊕ y — разделительная (строгая дизъюнкция)
  • f8(x, y) = x ∨ y — дизъюнкция
  • f9(x, y) = x ↓ y — стрелка Пирса
  • f10(x, y) = x ≡ y — эквивалентность
  • f11(x, y) = ¬ y — отрицание второго аргумента
  • f12(x, y) = y ⇒ x — обратная импликация
  • f13(x, y) = ¬ x — отрицание первого аргумента
  • f14(x, y) = x ⇒ y — импликация
  • f15(x, y) = x | y — штрих Шеффера
  • f16(x, y) = 1 — константа «истина»

При увеличении числа аргументов количество логических функций значительно возрастает. Тем не менее, следует помнить, что любую логическую функцию можно выразить через базовый набор, например, через конъюнкцию, дизъюнкцию и инверсию.

Логические функции, соответствующие
логическим операциям В2aВ,
называют элементарными. Количество
логических функций отnпеременных определяется выражением
22n,
поскольку|Bn|=2n,
а на каждом из2nнаборов логическая функция может
принимать одно из значений из того же
множества В (табл.5.4).

Табл.5.4

Набор

Номер
логической функции

п/п

значений

переменных

0

1

2

3

22n-1

1

00…00

0

1

0

1

1

2

00…01

0

0

1

1

1

3

00…10

0

0

0

0

1

4

00…11

0

0

0

0

1

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

22

11…11

0

0

0

0

1

Например, рассмотрим все логические
функции одной переменной (табл.5.5).

Табл.5.5

Логическая
функция

х

f0(x)

f1(x)

f2(x)

f3(x)

0

0

1

0

1

1

0

0

1

1

Поскольку
221=4,
то имеется четыре логических функции
одной переменной, две из них — константы:f0(x)=0,f3(x)=1.f0(x)- константа нуля,f3(x)- константа единицы. Здесь номер функции
означает десятичное число, соответствующее
двоичному числу, записанному в первом
и последнем столбцах табл.5.5.

Функция f1(x)=х,
т.е. совпадает со значением переменной.
Эта функция называется функцией
повторения. Функцияf2(x)=нам уже известна — это инверсия.

Можно заметить, что для каждой функции
одной переменной существует инверсная
ей:

f0(x)=3(х)==1;

f3(x)=0(х)==0;

f1(x)=2(х)==х;

f2(x)=1(х)=.

Рассмотрим все функции двух переменных
(табл.5.6).

Табл.5.6

Вес разряда вектора
значения функции

20

21

22

23

Набор

Название

Формула

20

х1

0

1

0

1

функции

(Вебба)

21

х2

0

0

1

1

f0

0

0

0

0

Константа 0

0

f1

1

0

0

0

Функция Пирса
(Вебба), «стрелка Пирса», ИЛИ-НЕ

х1¯х2=

f2

0

1

0

0

Запрет х2

х1

f3

1

1

0

0

Отрицание х2

f4

0

0

1

0

Запрет х1

х2

f5

1

0

1

0

Отрицание х1

f6

0

1

1

0

Сложение по mod2

х1Åх2=

х1Úх2

f7

1

1

1

0

Функция
Шеффера, «штрих Шеффера»,

И-НЕ

х12=

Ú

f8

0

0

0

1

Конъюнкция, И

х1х2

f9

1

0

0

1

Эквиваленция

(эквивалентность)

х1«х2=

х1х2Ú

f10

0

1

0

1

Повторение
х1

х1

f11

1

1

0

1

Импликация
х2в х1

х2®х1

Úх1

f12

0

0

1

1

Повторение
х2

х2

f13

1

0

1

1

Импликация
х1в х2

х1®х2

Úх2

f14

0

1

1

1

Дизъюнкция,
ИЛИ

х1Úх2

f15

1

1

1

1

Константа
1

f1

Всего таких функций имеется 222=24=16.
Согласно табл.5.6 существуют две функции
— константы 0,1, которые не зависят от
значения переменных. Есть функции,
зависящие только от одной переменной.
Такие функции называют вырожденными.
Перечислим их:

f0(x1x2)=0;
f5(x1x2)=;f3(x1x2)=;

f15(x1x2)=1;f10(x1x2)=х1;f12(x1x2)=х2.

Некоторые функции мы тоже уже знаем:
конъюнкцию f8(x1x2)=х1х2(точку между х1и
х2опускаем); дизъюнкциюf14(x1x2)=х1Úх2;
эквиваленцию (эквивалентность)f9(x1x2)=х1«х21х2Ú(здесь эквиваленция представлена в виде
дизъюнкции двух конъюнкций, что можно
доказать, составив таблицу истинности);
импликациюf13(x1x2)=х1®х2=Úх2;
импликациюf11(x1x2)=х2®х1=Úх1.

Кроме этого, имеются другие функции,
зависящие от двух переменных: f1(x1x2)=носит название функции Пирса (Вебба)
(«стрелка Пирса»),f7(x1x2)=Úносит название функции Шеффера («штрих
Шеффера»),f2(x1x2)=х1называется запретом х2, аf4(x1x2)=х— запретом х1. Функцияf6(x1x2)называется сложением по модулю два, это
функция, инверсная эквиваленции и
обозначается х1Åх2(mod2).

Элементарные логические функции
позволяют получить сложные функции от
большего числа аргументов путем
подстановки в данную функцию вместо ее
переменных других функций. Такой метод
получения функций называется суперпозицией.
Например, имея элементарные функции
двух переменных z1=x1x2
иz2=x3Úx4можно получить функцииz31(x3Úx4),z4=x3Úх1x2,
зависящие от трех переменных.

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

Эта проблема называется проблемой
функциональной полноты логических
функций. Для ее решения были выделены
следующие классы логических функций:

1) Класс функций, сохраняющих константу
0. В этот класс входят функции, которые
на нулевом наборе переменных принимают
нулевое значение: f(00…0)=0.
Такова, например, конъюнкцияf81х2f8(00)=0×0=0.

2) Класс функций, сохраняющих константу
1. В этот класс входят функции, которые
на единичном наборе переменных принимают
единичное значение: f(11…1)=1.
Этим свойством также обладает конъюнкцияf8(11)=1×1=1.
Классы 1,2 легко устанавливаются по
таблице истинности.

3) Класс самодвойственных функций.
Логические функции f(х1х2…хn)
иg(х1х2…хn)
называются двойственными, если
имеет место равенство

f(х1х2…хn)=,

т.е. если одна функция получается из
другой, если провести замену всех
переменных на их инверсии и провести
инверсию функции.

Например, f81х2)=х1х2иf14(x1x2)=х1Úх2двойственны:

.

Это можно доказать, построив таблицу
истинности:

Табл.5.7

х1

х2

х1х2

0

0

0

0

0

1

0

0

1

0

0

0

1

1

1

1

Логическая функция называется
самодвойственной, если она двойственна
по отношению к самой себе:

f(х1х2…хn)=.

Такова, например, функция f10(x1x2)=x1:

.

Самодвойственность
устанавливается по таблице истинности
следующим образом: значения функции,
симметричные относительно середины
таблицы инверсны. Например, дляf10(x1x2)значения функции представляют собой
вектор 01 01, каждый разряд которого
является инверсным по отношению к
симметричному разряду относительно
середины, отмеченной пунктиром. Эти
разряды соответствуют инверсным наборам
х1х2: 00 — 11, 01 — 10. Самодвойственны
функции,21.

4) Класс линейных функций. Логическая
функция называется линейной, если
возможно представление в виде линейного
полинома, использующего функцию сложения
по модулю 2 (mod2):

f(x1x2)=с0Åс1х1Åс2х2,

где с012— константы
0,1.

Например, для сложения по модулю 2(mod2):

f6(x1x2)=х1Åх2.

с0=0, с12=1:

f6(x1x2)=0Å1×х1Å1х2.

Получим все линейные функции двух
переменных, задав все возможные значения
с0с1с2(табл.5.8).

Табл.5.8

с0

с1

с2

Вид полинома

0

0

0

0

Можно
доказать,

0

0

1

х2

используя, например,

0

1

0

х1

таблицу
истинности,

0

1

1

х1Åх2

что:

1

0

0

1

1

0

1

1Åх2

=

1

1

0

1Åх1

=

1

1

1

1Åх1Åх2

=

Видно, что каждая линейная функция имеет
инверсную ей. Таким образом, линейные
функции — константа 0, константа 1,
повторение х12, инверсии:,,
сложение по модулю 2 (х1Åх2)
и инверсная ей эквиваленция.

5) Класс монотонных функций. Монотонная
функция на большем сравнимом наборе
переменных принимает не меньшие значения.
Это удобно проверять на решетках Хассэ.
Так, для двух переменных решетка имеет
вид рис.5.1.

На рис.5.1 видно, что 11>01>00,
11>10>00(частично упорядоченное
множество наборов).

Рис.5.1. Решетка Хассэ для двух переменных

с указанием значений f101х2)=х1

Очевидно, что константы 0,1 — монотонные
функции, дизъюнкция, и конъюнкция —
монотонные функции, повторения х12— монотонные функции. На рис.5.1 проставлены
значения монотонной функции х1.

Система логических функций называется
функционально полной, если любая
произвольная логическая функция от
любого числа переменных может быть
представлена в виде суперпозиции
логических функций из этой системы.

Функционально полная система логических
функций называется минимальной, если
удаление из нее хотя бы одной функции
превращает ее в неполную. Критерий
функциональной полноты логических
функций устанавливает теорема
Поста-Яблонского, в которой утверждается,
что для функциональной полноты систем
логических функций необходимо и
достаточно, чтобы они содержали следующие
функции:

— не сохраняющую константу 0;

— не сохраняющую константу 1;

— несамодвойственную;

— нелинейную;

— немонотонную.

Функционально полные системы логических
функций представляют собой базис. Всего
можно получить 17 различных минимальных
базисов из логических функций двух
переменных.

Оказывается, имеются функции, обладающие
всеми пятью отмеченными свойствами.
Таковы функции f1(x1x2)=иf7(x1x2)=Ú.
Часто их называют соответственно ИЛИ-НЕ,
И-НЕ. Таким образом, это базисы, состоящие
из одной функции (базис Вебба и базис
Шеффера). Этот факт очень важен при
технической реализации дискретных
устройств: достаточно иметь элементы,
реализующие только одну из этих функций,
чтобы построить любую, сколь угодно
сложную схему. Более подробно этот
вопрос будет рассмотрен при изучении
синтеза автоматов.

Имеются базисы, состоящие из двух
функций:

Иногда используется не минимальный
базис — из трех функций:

Имеется и довольно экзотический базис
Жегалкина:

В дальнейшем нам пригодится так называемый
импликативный базис

Если рассматривать логические функции
большего числа аргументов, то можно
поставить задачу отыскания базисов, не
зависящих от их некоторых модификаций
соответствующих функций. Такие модификации
могут быть, например, вызваны подстановкой
констант 0,1 и инверсией переменных, что
происходит при некоторых отказах
соответствующих логических элементов.
Такие базисы называют толерантными.
Например, логическая функция четырех
переменных
— толерантный базис — функционально
полная толерантная функция, которая
при подстановке констант вместо
переменных или при инверсии переменных
модифицируется также в базисную функцию:

Соседние файлы в папке TURIN

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Логические функции

Любую логическую формулу можно рассмотреть как функцию F(x1, x2, …, xn), где x1, x2, …, xn – это логические переменные, которые могут принимать только значения «истина» (1) и «ложь» (0). Значение логической функции также либо «истина» (1) и «ложь» (0). Все рассмотренные ранее бинарные и унарные логические операции можно считать функциями от соответствующего числа переменных: отрицание F(x)= не x, конъюнкция F(x,y)=x & y, дизъюнкция F(x,y)=x v y, разделительная дизъюнкция F(x,y)=x Δ y, импликация F(x,y)=x → y, эквивалентность F(x,y)=x ↔ y. Однако это не все функции, которые можно построить от двух переменных x и y. Каждая логическая функция от двух переменных имеет 4 возможных набора значений аргументов, и мы можем определить, какое количество различных логических функций от двух переменных может существовать:
N = 24 = 16.
Таким образом, существует 16 различных функций от двух переменных, каждая из которых может быть задана своей таблицей истинности.

Аргументы

Логические функции

x

y

F1

F2

F3

F4

F5

F6

F7

F8

F9

F10

F11

F12

F13

F14

F15

F16

0

0

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

0

1

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

1

0

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

1

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

Так как функций от двух переменных всего 16, то в алгебре логики все эти функции имеют свои имена:

F1(x,y)=0 константа ложь
F2(x,y)=x&y конъюнкция
F3(x,y)=не (x→y) отрицание импликации
F4(x,y)=x функция равна первому аргументу
F5(x,y)=не (y→x) отрицание обратной импликации
F6(x,y)=y функция равна второму аргументу
F7(x,y)=x Δ y разделительная дизъюнкция
F8(x,y)=x v y дизъюнкция
F9(x,y)=x ↓ y стрелка Пирса(отрицание дизъюнкции)
F10(x,y)=x ↔ y эквивалентность
F11(x,y)=не y отрицание второго аргумента

Заметим, что одна и та же функция может выражаться различными формулами. Например, функция штрих Шеффера может быть выражена как формулой не (x & y) так и формулой не x v не y.

Для большего числа переменных также можно подсчитать количество различных функций. Для k логических переменных можно построить m = 2k различных наборов значений, то есть любая таблица истинности функции от k переменных будет иметь 2k строк. Поэтому количество различных функций от k переменных будет 2m = 22k.

Отметим, что задаются логические функции двумя способами:
1) с помощью таблицы истинности:

x

y

f

0

0

0

0

1

0

1

0

0

1

1

1

2) аналитически с помощью соответствующих формул:

f(x,y)=x&y

Последнее изменение: Суббота, 7 марта 2015, 09:21

Автор Сообщение

Заголовок сообщения: Подсчитать число особых логических функций

СообщениеДобавлено: 10 май 2021, 23:52 

Не в сети
Начинающий


Зарегистрирован:
27 окт 2020, 13:56
Сообщений: 16
Cпасибо сказано: 4
Спасибо получено:
1 раз в 1 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации

Здравствуйте, уважаемые участники форума. Не могу понять, как подойти к задаче по вычислению количества логических функций, подходящих под условие: [math](S cup L) — T _{0}[/math].
Буквы — множества по классификации Поста. К ним можно применять все формулы из алгебры множеств, но, как я понял, в данном случае их недостаточно. Я знаю следующие формулы: [math]left| T _{0} right| = left| T _{1} right| = 2 ^{2^{n} — 1}[/math], [math]left| T_{0} cap T_{1} right| = 2 ^{2^{n}-2}[/math], [math]left| S right| = 2 ^{2^{n-1}}[/math], [math]left| L right| = 2 ^{n+1}[/math], [math]LT_{0}T_{1} = LST_{0} = LST_{1} = LST_{0}T_{1}[/math] и некоторые другие свойства. Просят найти формулу числа таких вот функций.

Вернуться к началу

Профиль  

Cпасибо сказано 

3D Homer

Заголовок сообщения: Re: Подсчитать число особых логических функций

СообщениеДобавлено: 11 май 2021, 00:56 

KuznetsovSA писал(а):

Не могу понять, как подойти к задаче по вычислению количества логических функций, подходящих под условие: [math](S cup L) — T _{0}[/math].

Строго говоря, это не условие, а множество, и оно бесконечно.

Если вас интересуют функции от [math]n[/math] переменных, то, думаю, их число можно найти по формуле [math]|Soverline{T}_0|+|Loverline{T}_0|-|SLoverline{T}_0|[/math].

Вернуться к началу

Профиль  

Cпасибо сказано 

KuznetsovSA

Заголовок сообщения: Re: Подсчитать число особых логических функций

СообщениеДобавлено: 11 май 2021, 13:58 

3D Homer писал(а):

Если вас интересуют функции от n
n
переменных, то, думаю, их число можно найти по формуле |ST¯¯¯¯0|+|LT¯¯¯¯0|−|SLT¯¯¯¯0|
|ST¯0|+|LT¯0|−|SLT¯0|
.

Разве можно складывть мощности множеств не убедившись, что они не содержат общих элементов?
Если вы точно знаете что эта формула работает, то не могли бы пояснить почему?
Уже долго пытаюсь решить, поэтому написал програму на C которая счиает число таких функций для конкретного [math]n[/math]. Работает тупым перебором и проеркой.
Вот что она насчитала: [math]1, 2, 4, 12, 136[/math] для функций от нуля, одной, двух переменных соответственно.

Вернуться к началу

Профиль  

Cпасибо сказано 

KuznetsovSA

Заголовок сообщения: Re: Подсчитать число особых логических функций

СообщениеДобавлено: 11 май 2021, 15:23 

3D Homer писал(а):

Где я предлагаю это делать: просто складывать?

Вы написали

3D Homer писал(а):

|ST¯¯¯¯0|+|LT¯¯¯¯0|−|SLT¯¯¯¯0|

. А прямые скобки [math]left| right|[/math] обозначают взятие мощности множества, т.е. его длины.
Возможно вы имели в виду что-то другое использовав эти скобки?

Вернуться к началу

Профиль  

Cпасибо сказано 

Понравилась статья? Поделить с друзьями:
  • Как найти размер шрифта в пунктах
  • Как найти фильм грозовые ворота
  • Как найти валентность в периодической таблице
  • Как найти больше покупателей
  • Как найти пенсионеру инвалиду работу