Функции двух аргументов
Оглавление
Функции двух аргументов
Страница 2
Страница 3
Страница 4
Страница 3 из 4
Таблица 4.7. Двоичные функции одного (второго) аргумента
а |
b |
b(f 1) |
-b(f 14) |
— |
0 |
1 |
0 |
— |
1 |
1 |
1 |
— |
0 |
0 |
0 |
— |
1 |
0 |
1 |
Таблица 4.8. Двоичные функции нуля аргументов
а |
b |
1 (f15) |
0 (f16) |
— |
— |
1 |
0 |
— |
— |
1 |
0 |
— |
— |
1 |
0 |
— |
— |
1 |
0 |
Можно отметить, что в табл. 4.3 попали операторы, изначально предназначенные
для работы не с двоичными25, а с вещественными операндами:
. Но если принять во внимание тот
факт, что множество двоичных чисел26 входит во множество вещественных чисел , то
включение этих операторов в табл. 4.3 вполне законно. В этом ряду (![](../../../../../../pic/mcad14/tmp3A88-281.jpg)
) также можно отметить и избыточность, и недостаточность. С избы-
![](../../../../../../pic/mcad14/tmp3A88-282.jpg)
точностью все более-менее ясно ("больше", например, — это инверсия от
оператора "меньше или равно" и т. д.). Недостаточность же можно наблюдать в том,
что при работе с вещественными переменными вместо оператора "равно" более
уместно использовать оператор "примерно равно", которого нет в списках
встроенных. Можно также вспомнить о существовании понятий "намного больше" или "намного меньше". Эти операторы
соотношения также возвращают двоичные значения, но имеют фактически уже не два,
а три аргумента (операнда): сравниваемую пару вещественных чисел и некое
контекстное представление программиста о том, что такое "примерно" или
"намного".
Если говорить не о классической двоичной алгебре, а о реальной практике
программирования, то следует признать, что переменные, фигурирующие в табл. 4.2
и 4.3, могут принимать не два (0 или 1), а три значения: 0, 1 и неопределенно.
Эту особенность мы уже зафиксировали в табл. 4.4—4.8, где вместо конкретных
значений аргументов (0 или 1) стоит прочерк. В языках программирования есть
инструменты, обработки таких "прочерков" в таблицах истинности. Если аргумент
двоичной функции не определен, то расчет может либо прерываться сообщением об
ошибке, либо идти по третьему пути.
Аргументы двоичных функций могут принимать не два и не три, а... бесконечное
множество вещественных значений. Это множество делится на две предельно неравные
части: на нуль и на ненуль (-,0, если говорить языком табл. 4.2 — на числа,
отличные от нуля, которые двоичными функциями воспринимаются как единицы).
Бывает и так, что двоичная функция возвращает не только нули и единицы. В табл.
4.9 представлен пример работы функции Or в одной из реализаций языка
BASIC28.
Таблица 4.9. "Дизъюнктивная конъюнкция"
a |
b |
a Or b |
0 |
0 |
0 |
0 |
-0 |
1 |
-0 |
0 |
1 |
-0 |
-0 |
2 |
Можно допустить и другую работу расширенного оператора or (табл. 4.10).
Таблица 4.10. Расширенная конъюнкция (дизъюнкция)
а |
b |
a Or b |
0 |
0 |
0 |
|
0 |
-0 |
1 |
|
-0 |
0 |
2 |
|
-0 |
-0 |
3 |
Одно дело, когда первый аргумент (операнд) не равен нулю, а другое — когда
второй, и третье — когда оба одновременно.
Подытоживая "семипунктный" разбор табл. 4.2 и 4.3, можно сказать, что
описываемые двоичные функции в реальных компьютерных реализациях могут иметь
недвоичные аргументы и возвращать опять же недвоичные результаты. Но особого
недвоичного смысла в этом нет. Просто по технологическим причинам вещественные
переменные в описываемых реализациях языков программирования (BASIC, Mathcad и
др.) "по совместительству" играют роль двоичных (булевых, логических). При этом
двоичные (булевы, логические) функции воспринимают свои вещественные аргументы
"двоично": нуль есть нуль (Нет, False), а все остальное — единица (Да,
True).
Эта, можно сказать, "категоричность" описываемых встроенных функций вступает
в противоречие с положениями теории нечетких множеств (fuzzy sets) и теории
нечеткой логики (fuzzy logic). Необходимо, например, статистически обрабатывать
на компьютере не только "черно-белые" (двоичные) ответы анкетируемых типа "Да
(1)" — "Нет (0)", но и "цветные" (вещественные) ответы: "Да (1)", "Скорее да,
чем нет (0.75, например)", "Ни да, ни нет (0.5)", "Скорее нет, чем да (0.25,
например)" и "Нет (0)". Если говорить не о статистике, а об электротехнике и
вернуться к электрическим цепям, которыми иллюстрируют работу двоичных функций
(см. нижнюю часть рис. 4.25), то можно упомянуть тот факт, что сейчас в быту
получают распространение выключатели, плавно меняющие накал ламп от 100% до
нуля. Еще раньше такие устройства стали применять в театрах и кинозалах. Медики
уверяют, что плавный переход от света к темноте через полумрак не портит зрение.
(В кинотеатрах свет тушат плавно, конечно, не по медицинским соображениям, а по
другим причинам — если резко погасить свет, то может начаться паника.)
« Пред. - След. »