Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций испр..doc
Скачиваний:
72
Добавлен:
12.11.2019
Размер:
6.62 Mб
Скачать

1.3.4Системы счисления в остаточных классах

Рассмотрим множество всех натуральных чисел N, включая 0. Выберем далее n целых взаимно простых положительных чисел и для каждого числа найдем наименьшие положительные остатки от его деления на соответственно. Ясно, что число различных совокупностей остатков будет равно . При этом все множество может быть разбито на непересекающихся классов, в каждый из которых входят все числа из , имеющие одинаковые совокупности остатков. Эти классы называются остаточными классами. Каждому из них можно присвоить код, равный соответствующему ему набору остатков.

Если же все или некоторые из не будут взаимно простыми числами, то , т.к. появление отдельных совокупностей остатков становится невозможным. Действительно, остаток по некоторому числу в этом случае уже предопределяет остаток по числу , не являющемуся взаимно простым с . Так, к примеру, при появление наборов остатков (0,1), (0,3), (1,2), и (1,0) невозможно.

Предположим теперь, что выбрана некоторая система взаимно простых чисел и произвольное число . Ему может быть однозначно поставлен в соответствие код некоторого остаточного класса, к которому оно принадлежит. Обратного, к сожалению, сделать нельзя, т.е. невозможно назвать по коду класса число , о котором идет речь, поскольку каждый класс состоит из бесконечного множества элементов.

Для обеспечения взаимной однозначности выделим в каждом классе элемент, минимальный по своему числовому значению. Назовем его главным элементом класса. Обозначим символом множество главных элементов всех классов для данных . Если теперь рассматривать только множество , то при фиксированной системе между каждым числом и кодом класса существует взаимно однозначное соответствие. Вместо множества можно брать любое множество , элементы которого получаются из элементов прибавлением к каждому из них числа . Ясно также, что мощность множества зависит от того, какая система чисел используется. При этом, как уже отмечалось, желательно выбрать эти числа взаимно простыми. Тогда включает в себя элементов .

Системой счисления в остаточных классах (ССОК) называется такая система, в которой целое положительное число представляется в виде набора наименьших положительных остатков , получаемых от деления на каждое из целых положительных взаимно простых чисел , называемых основаниями (модулями) системы. При этом предполагается, что , где может быть одним из чисел натурального ряда, включая 0. Здесь по–прежнему . Следует заметить, что ССОК не является весомозначной.

Таким образом, . Величины называют еще цифрами системы и обозначают , i=1,2, …,n, поскольку где – целая часть числа , а диапазон чисел, представимых в ССОК, изображают в виде так называемого модульного кольца (рис. 3.1). Он может быть также охарактеризован для наиболее часто используемых модулей табл. 3.10. Третий и четвертый ее столбцы дают количество двоичных разрядов, необходимых для записи в ССОК с использованием двоичной системы любой цифры i-го разряда и любого числа из диапазона Р представимых чисел соответственно.

Рис. 3.1. Модульное кольцо

3.10

Рассмотрим правила выполнения в ССОК операций сложения и умножения над целыми положительными числами.

Пусть , ,

,

и .

Покажем, что , (3.4)

, (3.5)

т.е. и есть наименьшие положительные остатки от деления на и соответственно ( ).

Действительно,

, . (3.6)

Можно также записать, что , , где - некоторые целые неотрицательные числа.

Тогда ,

;

,

.

Подставляя эти соотношения в (3.6), нетрудно получить выражения (3.4) и (3.5).

Так, например, если и x=17=(2,2,3), y=6=(0,1,6), то x+y=(2,3,2), xy=(0,2,4). Легко проверяется, что числа (2,3,2) и (0,2,4) есть 23 и 102, равные x+y и xy соответственно.

Можно также показать, что разность чисел и при можно вычислить на базе соотношения

причем, если разность цифр , то следует взять её дополнение к основанию . Однако деление чисел в ССОК вызывает большие трудности. Пока что нет алгоритмов деления, позволяющих реализовать его за малое время при небольших затратах оборудования. Предлагаемые для этих целей методы деления с помощью специально вычисляемой двоичной функции, аппроксимирующей частное, мы рассматривать не будем.

К достоинствам ССОК следует отнести:

- независимость получения цифр числа, что позволяет при выполнении арифметических операций обрабатывать разряды параллельно без учета межразрядных связей;

- малоразрядность остатков при записи их в какой-либо позиционной системе, что открывает возможность построения табличной арифметики, т.е. простого выбора результатов большинства операций из заранее составляемых таблиц.

Недостатками этой системы являются:

- невозможность визуального сопоставления чисел;

- отсутствие простых признаков выхода результата за пределы диапазона [0,P);

- ограниченность сферой целых положительных чисел;

- сложность выполнения операции деления;

- трудности, связанные с приближенным выполнением операций, округлением результата и другие.

Некоторые пути преодоления этих недостатков изложены в разделе 2.