...................................."Не принимаю славы от человеков.", - И.Христос (Ин.5.41).
Многие знают о существовании логических функций, но не все знают, что каждая логическая функция имеет свой собственный, а не приписанный или назначенный произвольно кем либо из людей, номер, который содержится в ней самой.
Например, в TurboBasic'е есть встроенные бинарные логические функции: AND, OR, XOR, EQV и IMP. Определим их собственные номера.
Для этого для бинарной (двухаргументной) функции AND составим следующую таблицу:
Перебор значений аргументов начинают от 0 до 1 с первого операнда (Ai) и записывают в таблице справа налево. Получившаяся строка двоичных значений результата (1000) и является номером функции в двоичной системе счисления, который можно перевести в десятичную (8) или в любую другую систему счисления. Программно это выглядит так:
Рис.1. Текст программы в TurboBasic'е.
Много знаков "-" в формулах из-за того, что в TurboBasic'е False = 0, а True = -1.
В других языках программирования, в которых False = 0, а True = 1 формулы проще.
Рис.2. Снимок с экрана результата прогона программы.
По сути дела номер функции является таблицей истинности в виде одной строки и может применяться для задания не очень больших логических функций так же, как и таблица истинности, система логических уравнений или логическая схема. Для очень больших логических функций задание логических функций в виде таблицы истинности и в виде номера функции отпадают из-за очень большой величины и остаются только задания логических функций в виде системы логических уравнений и в виде логической схемы.
Литература:
1. Википедия. Булева функция. Бинарные функции
Приложения:
1. TurboBasic: https://andserkul.narod.ru/TurboBasic.rar
2. Файл с исходным кодом программы на Turbobasic'е:
https://andserkul.narod.ru/NUMBERS.bas
Версия 2024.06.28.