Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Dismat1.doc
Скачиваний:
102
Добавлен:
10.05.2015
Размер:
2.07 Mб
Скачать

3.2 Булевы функции

Функция f (x1, x2,..., xn), принимающая два значения: 0 и 1 и зависящая от переменных, каждая из которых может принимать значения 0 и 1, называется булевой или переключательной. Из определения следует, что область определения булевой функции – совокупность всевозможных n-мерных наборов из нулей и единиц, а для её задания достаточно указать, какие значения функции соответствуют каждому из наборов (табл. 3.3).

Таблица 3.3 – Задание булевой функции

x1

x2

...

xn-1

xn

f (x1, x2,...,xn-1, xn)

0

0

...

0

0

f (0, 0,...,0, 0)

0

0

...

0

1

f (0, 0,...,0, 1)

...

...

...

...

...

.................………

1

1

...

1

0

f (1, 1,...,1, 0)

1

1

...

1

1

f (1, 1,...1, 1)

Порядок расположения наборов, принятый в таблице, называется стандартным или естественным. При таком порядке каждому набору

= (1,...,n), где i есть 0 или 1, ставится в соответствие число

N = 1 2n-1 + ... + n-1 2 + n .

Наборам (0, 0,...,0, 0), (0, 0,...,0, 1),..., (1, 1,...,1, 1) соответствуют числа 0, 1,..., 2n-1. Естественным порядком будет расположение наборов в порядке возрастания соответствующих им чисел. Десятичное число, соответствующее входному набору, является его номером. Поэтому очевидно, что количество k входных наборов для булевой функции n переменных равно k=2n. Количество же различных функций n переменных можно определить из следующих соображений. Каждая функция задается набором своих k значений (для k входных наборов), которому также можно поставить в соответствие k-разрядное двоичное число. Располагая теперь в таблице функции в порядке возрастания соответствующих им чисел, мы получим все возможные различные функции. Количество таких функций будет равно .

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

Таблица 3.4 – Булевы функции одной переменной

x

g1(x)

g2(x)

g3(x)

g4(x)

g1(x), g4(x) – константы 0 и 1,

0

0

0

1

1

g2(x) = x,

1

0

1

0

1

g3(x) = x (отрицание x).

Таблица 3.5 – Булевы функции двух переменных

x1

x2

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

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

Функции f1, f16 – константы 0 и 1. Они не зависят существенно ни от одной переменной.

Функции f4 = х1, f11 =х2, f6 = х2, f13 =х1 зависят существенно только от одной переменной.

f2 = х1 ٨ х2конъюнкция или логическое умножение (знак «٨» можно заменять на «∙», либо опускать).

f8 = х1 ٧ х2дизъюнкция или логическое сложение.

f10эквивалентность, х1  х2.

f7 = х1 х2 или х1 + х2 (mod 2) – сложение по модулю два.

f12, f14импликация, х2  х1 и х1 х2.

f15 штрих Шеффера, х1 | х2.

f9 стрелка Пирса, х1  х2 (другое название – функция Вебба).

f3, f5функции запрета х1 и х2 соответственно. f3 = х1  х2 ,

f5 = х2  х1 .

Исходя из элементарных функций можно строить формулы, т.е. рассматривать функции от функций например, (x1  x2)х2)  х3 .

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]