Это в лекции 3. |
Булевы функции и их представления
Задачи
Задача 3.1. Какие подмножества вершин B4 соответствуют следующим булевым функциям:
- ;
- ;
- (здесь + - арифметическое сложение);
- или x3x4 = 1 .
Задача 3.2. Построить таблицы значений для следующих булевых функций:
- ;
- сумма (X1 +X2 + X3) четна;
- значение X1 совпадает со значением X2 или со значением X3.
- f4(X1,X2,X3) = если X1=1 , то X2 , иначе X3 .
Задача 3.3. Построить таблицы для функций, задаваемых следующими формулами:
;
;
.
Задача 3.4. Назовем два набора и соседними}, если они находятся в соседних строках таблицы для функции от n переменных, т.е. представляют двоичные записи чисел и , для которых .
Найти число функций в , которые на любой паре соседних наборов принимают
- одинаковые значения;
- разные значения.
Задача 3.5. Назовем два набора и противоположными}, если для всякого i (и, следовательно, ).
Найти число функций в , которые на любой паре противоположных наборов принимают разные значения.
Задача 3.6. Пусть n =2k. Назовем набор парным,} если для любого i=1, ..., k ,т.е. для некоторого набора размера k.
Найти число функций в , которые на всех парных Наборах принимают одинаковое значение.
Задача 3.7. Администратор базы данных обнаружил, что одна или несколько из трех записей его базы A, B и C ошибочна. Он установил, что
- если запись B корректна, то A ошибочна;
- хотя бы одна запись из пары B, C корректна и хотя бы одна запись из пары A, C корректна;
- если A ошибочна, то хотя одна из записей B, C корректна (но не обе вместе).
Опишите знания администратора в виде булевой формулы. Может ли он сделать вывод, что запись B ошибочна? Можно ли достоверно утверждать, что ошибочная запись единственна?
Задача 3.8. Программист Петр использовал в своей программе три целочисленные переменные x, y и z. В определенном месте программы он поместил условный оператор:
IF (x*y >= 0)OR (x*z >= 0) THEN x=1 ELSE x=2;
Проанализировав свою программу, Петр установил, что перед выполнением этого Оператора выполнены следующие условия:
- если z < 0, то x < 0 или y >= 0 ;
- x >= 0 или y < 0 ;
- если y < 0, то хотя бы одна из переменных x, z отрицательна, но не обе вместе.
Опишите знания Петра в виде булевой формулы. Может ли он оптимизировать программу, заменив указанный условный оператор на присвоение x=1 или на присвоение x=2? Если "да", то на какое?
Задача 3.9. Комитет состоит из пяти членов. Решения принимаются большинством голосов, однако, если председатель голосует "против", то решение не принимается. Постройте формулу, зависящую от 5 переменных X1, X2,X3, X4, Y ( -ый член комитета голосует "за", председатель "за"), значение которой равно 1 тогда и только тогда, когда в результате голосования решение принимается.