КОМПЛЕМЕНТАРНАЯ СИСТЕМА СЧИСЛЕНИЯ И ЕЕ ИСПОЛЬЗОВАНИЕ В БИОЛОГИИ, ФИЗИОЛОГИИ И КОМПЬЮТЕРНОЙ ТЕХНИКЕ
Опубликовано 2024-11-03 00:00 , обновлено 2024-11-03 00:05
КОМПЛЕМЕНТАРНАЯ СИСТЕМА СЧИСЛЕНИЯ
И ЕЕ ИСПОЛЬЗОВАНИЕ В БИОЛОГИИ, ФИЗИОЛОГИИ
И КОМПЬЮТЕРНОЙ ТЕХНИКЕ
Ю.Магаршак
Editor-in-chief NewConcepts Journal
СИСТЕМЫ СЧИСЛЕНИЯ БЕЗ ПОЗИЦИОННОГО НУЛЯ. Со времен изобретения арабских цифр считается, что система счисления должна содержать позиционный ноль, то есть ноль в каждом разряде. Правила обращения с цифрами (Булева алгебра) при этом таковы:
A+B = B+A = A
A A = A
A B = BA= B B =B
A+A=AB
(1)
где + и операции сложения и умножения, а в паре AB цифра B оккупирует разряд n, в то время как цифра А находится в следующем разряде n+1. В двоичном варианте эта система является основой функционирования компьютеров. Состояния ячеек А и B соответствуют цифрам 1 и 0.
Gregory Magarshak в далеком 1993 году был, повидимому, первым, кто задался вопросом, можно ли построить систему счисления, в которой ноль будет означать только пустое множество, но в разрядах, используемых для записи числа, среди используемых для этого цифр нуля не будет. Предложенная им система счисления (получившая название компактные числа) подчиняется следущим правилам:
a+ a= b aa =a
a +b = b + a = aa bb = ab
b + b= ab ab = ba = b (2)
эквивалентная арифметике с цифрами 1 и 2. Первые 12 целых положительных чисел этой арифметики таковы:
1 2 3 4 5 6 7 8 9 10 11 12
a, b, aa, ab, aaa, aab, aba, abb, baa, bab, bba, bbb
Правила (2) эквивалентны системе, в которой в каждом разряде используются цифры a=1, b=2. В целом, компактная система счисления функционирует столь же эффективно, как традиционная, с позиционным нулем. Правила сложения и умножения также столь же просты, как при умножении и сложении в традиционной системе. После небольшой тренировки, ее использование на практике не представляет проблем. Ноль в этой системе, однако, в разрядах для записи чисел отсутствует. Он появляется только как пустое множество, то есть является одной единственной точкой на оси вещественных чисел, как в алгебре.
В настоящей работе рассмотрена другая система счисления без позиционного нуля – комплементарные числа. Ее использование представляется особенно перспективным в связи с тем, что комплементарность является принципом, чрезвычайно широко используемым в природе. При этом в живой природе (in vivo) повсеместно и в самых разнообразных формах от комплементарности фермент-субстратной пары в энзиматических процессах до комплементарности нуклеотидов молекулы наследственности ДНК.
КОМПЛЕМЕНТАРНАЯ СИСТЕМА СЧИСЛЕНИЯ. В предлагаемой системе счисления используются два символа: p и n (первые буквы слов positive and negative), действия с которыми аналогичны действиям с числами +1 и –1 в арифметике.
Существует несколько схем оперирования с комплементарными числами. Среди них отметим
1) Комплементарную систему счисления с фиксированным количеством разрядов (подобно тому, как это происходит в компьютерах)
2) Комплементарную систему счисления с переменным количеством разрядов (в которой для записи информации используются последовательности с переменным числом разрядов, наподобие нуклеотидных цепей).
ФРАКТАЛЬНЫЕ СЕТКИ СИСТЕМ СЧИСЛЕНИЯ.
На Рис. 1 изображена фрактальная сетка, служащая основой всех двоичных систем счисления. Вертикальный отрезок длиной 2k соответствует разряду номер k. В случае традиционной булевой алгебры с позиционным нулем, двоичная запись числа N получается при движении вдоль прямой, параллельной secondary diagonal и пересекающей и ось X и ось Y в точке N (Так называемый числовой луч) (Рис.2).
ФРАКТАЛЬНАЯ СЕТКА В ДВОИЧНОЙ БУЛЕВОЙ АЛГЕБРЕ.
Двоичная запись числа в традиционной булевой алгебре получается по следующему правилам:
- если числовой луч пересекает вертикальный отрезок фрактальной сетки, соответствующий разряду n, в двоичной записи числа в разряде n записывается 1.
- Если числовой луч не пересекает вертикальный отрезок фрактальной секти, соответствующий разряду n, в двоичной записи числа в разряде n записывается 0 (ноль).
При этом, само собой разумеется, традиционная двоичная запись числа не зависит от того, происходит ли движение по числовому лучу начиная от оси X к оси Y (в направлении увеличения разрядов) или от оси Y к оси X (в направлении уменьшения разрядов).
ФРАКТАЛЬНАЯ СЕТКА В КОМПЛЕМЕНТАРНОЙ СИСТЕМЕ СЧИСЛЕНИЯ.
Получение числа по фрактальной сетке в комплементарной системе счисления может быть осуществлено двумя способами: в направлении увеличения разрядов записи числа и в направлении их уменьшения. Хотя алгоритмы разнятся, результат оказывается одним и тем же.
Генерация комплементарной формы числа N, перемещаясь от меньших разрядов к высшим получается в результате движения по ломанной линии, начинающейся в точке N на оси X. Траектория перемещения точки, представляющей число от оси X к вертикальному отрезку длиной 2k, где к – число разрядов представления числа, определяется по следующим правилам:
Шаг первый. Если точка N касается одного из вертикальных отрезков фрактальной сетки с определенным числом разрядов, она перемещается к верхней точке этого отрезка. Если нет – перемещается вдоль лучей в первом квадранте, выходящих из этой точки и наклоненных к горизотальной оси под углами π/4 и -π/4, к вершине того из двух вертикальных отрезков, который имеет минимальную длину (и вдвое длиннее отрезка, из которого луч вышел). Один из двух ближайших к точке N вертикальных отрезков справа и слева от нее всегда удовлетворяет этому требованию.
Рекуррентная процедура. Из точки, в которой находится траектория числа N, испускаются два луча под углами π/4 и -π/4 к оси X. Один и только один из этих лучей пересекает отрезок фрактальной сетки вдвое более длинный, чем тот, на котором находится точка. Назовем эту точку фрактальной сетки Rn+1. Точка траектории комплементарной записи числа N перемещается из точки Rn в точку Rn+1. После чего процедура повторяется до тех пор, пока логарифм длины отрезка фрактальной сетки, на котором находится точка, не будет соответствовать числу разрядов (фиксированному) в записи данного числа.
Генерация комплементарной формы числа N, перемещаясь от высших разрядов к меньшим. Начальная точка находится на вершине отрезка фрактальной сетки длиной 2n, где n – число разрядов для записи числа.
- для получения значения числа в комплементарной форме происходит движение по ломаной линии вдоль отрезков, наклоненных к оси X на π/4 и -π/4 в направлении приближения к оси Х.
- Одно из двух направлений: π/4 или -π/4 выбирается таким образом, чтобы точка N на оси X находилась под проекцией отрезка номер k на ось X.
- Отрезок номер k траектории записи числа заканчивается на элементе фрактальной сетки, в два раза меньшем, чем тот, с которого отрезок начинался.
- Процедура продолжается до тех пор, пока траектория комплементарной записи числа не достигнет наименьшего элемента фрактальной сетки, используемого для комплементарной записи числа. Если число разрядов не ограничено, процедура для записи вещественного числа продолжается бесконечно, приближаясь к оси X (так же, как это происходит в случае записи иррациональных и трансцендентных чисел в традиционной булевой алгебре).
На рис. 3 для иллюстрации изображены траектории получения комплементарной записи чисел 11, 16 и 23. В таблице 1 приведены первые 32 комплементарных числа, а также (для сравнения) запись тех же чисел в традиционной булевой алгебре. Обратим внимание на то, что традиционная бинарная запись цифр с k разрядами позволяет записывать цифры с 0 до 2k-1, тогда как комплементарная запись цифр с двумя разрядами позволяет записывать и положительные, и отрицательные цифры от 1 до 2k.
ЗАПИСЬ КОМПЛЕМЕНТАРНЫХ ЧИСЕЛ В КОМПЬЮТЕРАХ. Каждое положительное число в комплементарной записи имеет цифру p (плюс 1) в старшем разряде, а каждое отрицательно число – цифру n (минус 1, т.е. -1) в старшем разряде. Допустим, положительное число N записано в виде n-разрядного [Nn]. Для записи этого же числа в форме с числом разрядов на k больше оно будет иметь вид [Nn+k]=pnnnn[Nn]. Если в n разрядах записано отрицательное число [Mn], то в форме, в которой число разрядов равно n+k его вид будет [Mn+k]=npppp[Mn], где цифры p (плюс единица) и n (минус единица) повторяются k раз.
АРИФМЕТИЧЕСКИЕ ДЕЙСТВИЯ С КОМПЛЕМЕНТАРНЫМИ ЧИСЛАМИ.
Умножение комплементарных чисел. Умножение комплементарного числа на единицу оставляет его неизменным, тогда как умножение комплементарного числа на минус единицу приводит к замене в каждом разряде цифры n на цифру p а цифры p на цифру n.
Сложение комлементарных чисел. Начнем с рассмотрения сложения комплементарных чисел в том случае, если число разрядов для его записи может варироваться. Покажем, что оно может осуществляться без использования нулей.
Допустим, что в младшем разряде (или в k младших разрядах) у складываемых чисел стоят противоположные комплеменарные цифры. В этом случае запись числа сокращается на k разрядов.
Допустим, что первым разрядом, в которых цифры слагаемых чисел комплементарной записи одинаковы, является разряд k. Начиная с этого разряда алгоритм сложения двух комплементарных чисел таков. Генерируется вспомогательный дуплет (пара ячеек), состоящий из двух разрядов, которые назовем первичным А и вторичным B, и который скользит вдоль разрядов в направлении возрастания в процессе сложения.
Пусть ячейка дуплета A находится напротив разряда номер k.
- Если цифры в разряде k cлагаемых чисел одинаковы, в ячейку B записывается цифра из этого разряда. Это – предварительное значение цифры в ячейке k+1 (которое может быть изменено или не изменено на следующем шаге дуплета) Если они противоположны, ячейка B остается без изменения.
- Цифра, записанная в ячейке А из предыдущего шага, сравнивается с цифрами слагаемых в разряде k. Если слагаемые цифры противоположны, цифра из ячейки А записывается в разряд k cуммы. Если слагаемые цифры в разряде k одинаковы, эта цифра записывается в разряд k суммы (окончательное значение суммы в разряде k), а в разряд k+1 суммы чисел записывается комплементарное им число.
- Ячейки A и B меняются местами и смещаются на один разряд вправо. После чего шаги 1, 2 и 3 повторяются.
КОМПЛЕМЕНТАРНАЯ СИСТЕМА СЧИСЛЕНИЯ С ФИКСИРОВАННЫМ ЧИСЛОМ РАЗРЯДОВ. Вместо того, чтобы вариировать число разрядов (тем самым, избегая использование нуля), в комплементарной системе, так же как в традиционной, используемой в компьютерах, можно использовать приближенное значение чисел. Последовательность pnpnpnpn… являтся приближенной записью нуля со стороны положительной полуоси, тогда как последовательность npnpnpnp… дает приближенное значение нуля со стороны отрицательной полуоси. Вспомнив, что в компьютерах с фиксированным числом разрядов числа записываются приближенно, точность вычислений в комплементарной системе счисления и в традиционной булевой алгебре одного порядка величины.
ОБСУЖДЕНИЕ. Использование двоичной Булевой алгебры (последовательности нулей и единиц) повсеместно используемой в компьютерной технике в настоящее время, является далеко не единственно возможным. В настоящей работе предложена одна из возможных альтернатив. Которая может оказаться полезной и в использовании одновременно с булевой кодировкой (например, для повышения устойчивости против вирусов), и сама по себе.
С другой стороны бросается в глаза, что нет никаких данных, что Булева алгебра используется в работе мозга и вообще в биологии. Напротив – существование множество комплементарных систем in vivo делает развитие комплементарной системы счисления потенциально полезным. В частности, гипотеза о том, что работа мозга (в котором синапсы осуществляются совокупностью положительных и отрицательных связи) осуществляется с использованием комплементарных систем счисления, представляется достойной всесторонней проверки.
Дальнейшее исследование использования комплементарных систем счисления в компьютерной технике, а также того, что комплементарная арифметика является основой работы мозга, представляется плодотворным и перспективным.
Оставлять комментарии могут только зарегистрированные пользователи. Войдите в систему используя свою учетную запись на сайте: |
||