Функции двух аргументов
Оглавление
Функции двух аргументов
Страница 2
Страница 3
Страница 4
Страница 2 из 4
Но деление двоичных функций и операторов на основные (базисные) и
вспомогательные появилось задолго до компьютеров и "узаконилось" в виде двоичных
алгебр (в скобках отмечен их базис):
• алгебра логики (');
• булева алгебра();
• алгебра Жегалкина ();
• алгебра Пирса ();
• алгебра Шеффера (|).
Две последние двоичные алгебры примечательны тем, что в их базисе всего лишь
по одной двоичной функции, опираясь на которую можно построить все
остальные.
На рис. 4.25 показан Mathcad-документ, где с опорой на функцию Пирса (еще
говорят— стрелка Пирса:), которую мы определили на рис. 4.24, построены другие двоичные
функции22: одна двоичная функция одного аргумента (отрицание, инверсия — Not) и
пять двоичных функций двух аргументов: And, Or, Imp, штрих Шеффера и Eqv.
Последние три функции (imp, штрих Шеффера и Eqv) заданы с использованием ранее
определенных функций. Это сделано для большей компактности рисунка, но от
механизма ВЛОЖеНИЯ Пользовательских функций (lmp(a,b) :=Or(Not(a) ,b),
например) можно отказаться и оперировать "для чистоты эксперимента" только
функцией (штрихом) Пирса. Двоичные функции часто иллюстрируют электрической
цепью (см. рис. 4.28): последовательное соединение выключателей — это
конъюнкция, а параллельное — дизъюнкция. На рис. 4.25 показан менее тривиальный
пример — электрический аналог эквиваленции: схема соединения двух выключателей,
так чтобы свет независимо зажигался и выключался из двух мест.
Рис. 4.25. Построение двоичных функций с опорой на функцию Пирса
На алгебру Пирса и алгебру Шеффера возлагались большие надежды в смысле
построения компьютера23 из однотипных элементов. Потом от этой идеи отказались по ряду причин, главная из которых в том, что любой
компьютер и так состоит только из однотипных элементов — транзисторов,
объединенных в интегральные микросхемы (чипы).
Можно отметить недостаточность набора математических инструментов,
отображенных в табл. 4.2 и 4.3. (Если объединить два предыдущих пункта наших
комментариев, то их можно поместить под одним заглавием "Избыточная
недостаточность".) Возьмем, например, самую "популярную" функцию двоичной
алгебры — конъюнкцию24. Ее столбец в таблице истинности (а так называют табл.
4.2 и 4.3) по идее должен быть такой, как в табл. 4.4.
Таблица 4.4. Уточненная конъюнкция
а |
b |
a And b (f 1) |
0 |
— |
0 |
0 |
— |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
Прочерк на месте нуля означает, что если первый аргумент (а) равен нулю, то
незачем проверять, чему равен второй аргумент (ь), и наоборот. Так и поступают,
строя некоторые языки программирования — С, например. При программировании в
среде языка BASIC условный переход по конъюнкции можно записать так:
первый способ:
If a And b Then...
второй способ:
If a Then If b Then. ИЛИ
If b Then If a Then...
Второй способ записи позволяет не только ускорять расчеты, но и избегать
некоторых ошибок— логическое выражение b может иметь смысл, если на альтернативный вопрос а дан положительный ответ. Вот типичный пример
такой "программистской" ситуации:
If I > 0 Then If V(i) > V(i-l) Then...
Можно сказать, что в языке BASIC есть две конъюнкции: And и Then if.
Если учитывать, что в этом разделе рассматривается не какая-то конкретная
алгебра двоичных чисел (булева, Пирса, Шеффера и т. д.), а перечисляются
возможные двоичные функции двоичных аргументов, то следует признать, что даже
одноместных функций должно быть не четыре (см. табл. 4.2), а... бесконечное
множество. Запрограммированная двоичная функция может, например, возвращать
единицу с вероятностью 70%, если ее аргумент равен нулю, и с вероятностью 30%,
если аргумент равен единице. В остальных случаях она возвращает нуль.
В табл. 4.2 и 4.3 собраны двоичные функции одного и двух аргументов
соответственно. Но, возвращаясь к конъюнкции, можно сказать, что эта функция
имеет не два, а... полтора аргумента (см. табл. 4.4).
Такую же нецелочисленностъ (вещественность!) или непостоянство числа
аргументов можно отметить и по другим двоичным функциям (табл. 4.5—4.8).
Таблица 4.5. Двоичная функция полутора аргументов
а |
b |
a Or b (f 2) |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
— |
1 |
1 |
— |
1 |
Таблица 4.6. Двоичные функции одного (первого) аргумента
а |
b |
a (f н) |
a(f 13) |
0 |
— |
0 |
1 |
0 |
— |
0 |
1 |
1 |
— |
1 |
0 |
1 |
— |
1 |
0 |
« Пред. - След. »