Перевод, осуществляемый согласно алгоритму (3.6´),содержит всего 2(
–1) остаточные арифметические операции вычитания и деления без остатка, где – число модулей системы. Можно предложить некоторую модификацию, т. е. операция деления заменить операцией умножения. Для этого предварительно вычисляется констант , которые удовлетворяют условию 1( ), 1 ≤ < ≤ . (3.7´)Эти константы можно, например получить из расширенного алгоритма Евклида
Здесь следует заметить тот факт, что константы
полностью определяются выбранной системой оснований, поэтому могут быть вычислены заранее и храниться в некоторой таблице. В приложении к [90] для модулей и не превосходящих 31 представлена таблица величин .Если константы
вычислены, то вычисление цифр ОПС по алгоритму (3.6´) может быть переписано в виде: , , (3.9´) , .Константы
принято также записывать в виде = и называть обратными элементами по умножению для чисел по модулю (multiplicativeinverse).Рассмотрим алгоритм (3.9´) на примере.
Пример. Пусть дана система оснований
= 2, = 3, = 5, = 7, = 11. Объем диапазона = 2310. переведем число =(1, 1, 3, 5, 4) в ОПС.Найдем сначала константы
: = =2, = =3, = =4, = =6, = =2, = =5, = =4, = =3, = =9, = =8.Для удобства константы
запишем в виде матрицы :Выполнение алгоритма (3.9´) представлено в таблице
Перевод числа из СОК в ОПС
Действия | Модули | Цифры ОПС | ||||
= 2 | = 3 | = 5 | = 7 | = 11 | ||
– | 1 | 21 | 11 | 41 | 71 | = =1 |
– | 0 | 12 | 03 | 34 | 66 | |
– | – | 22 | 02 | 52 | 32 | = 2 = |
– | 0 | 32 | 35 | 14 | ||
– | – | 1 | 11 | 41 | = 1 = | |
– | 0 | 03 | 39 | |||
– | 0 | 50 | = 0 = | |||
– | 0 | 58 | ||||
7– | = 7 = |
Таким образом,