Еще один путь решения поставленной задачи представляет собой перевод числа из СОК в ОПС с дополнительным финальным шагом. Рассмотрим этот метод.
Пусть СОК состоит из оснований
, , …, . Объем диапазона этой системы будет . Добавим к числу оснований СОК новое основание . Объем диапазона этой системы . Тогда любое число из диапазона [0; ) в обобщенной позиционной системе счисления представимо в виде = + +…+ + + . Если число будет лежать в первоначальном диапазоне [0; ), то в ОПС цифра = 0. Этот факт и используется для получения остатка от деления числа на новое основание СОК .Пусть число
имело представление ( , , …, ) по основаниям , , …, . Добавляем новое основание , тогда число =( , , …, , ) в системе оснований , , …, , , где – остаток от деления числа на , т.е. искомая цифра по новому основанию.Для определения этой цифры рассматриваем алгоритм перевода числа из СОК в ОПС, включая неизвестную цифру
в проводимые операции. При этом мы последовательно будем получать цифры ОПС , , …, и выражение для цифры . Но так как по предположению число [ 0; ), то цифра = 0. Из полученного соотношения и определяем искомую цифру .Пример. Пусть задана система модулей
= 2, = 3, = 5, = 7, тогда = 2·3·5·7=210. И пусть задано число = 157= (1, 1, 2, 3). Расширим систему оснований, добавляя = 11. Пусть = (1, 1, 2, 3, ) в системе оснований = 2, = 3, = 5, = 7, = 11. Набор констант = задается матрицейПроцесс решения задачи покажем
Расширение оснований модулярного кода
Действия | Модули | Цифры СОК | ||||
2 | 3 | 5 | 7 | 11 | ||
_ ха1 | 11 | 11 | 21 | 31 | 1 | а1=0 |
х-а1´ | 0 | 02 | 13 | 24 | -1 6 | |
_ х1а2 | 00 | 30 | 10 | 6 -6 0 | а2=0 | |
х1-а2´ | 0 | 32 | 15 | 6 -6 4 | ||
_ х2а3 | 11 | 51 | 2 -2 1 | а3=1 | ||
х2-а3´ | 0 | 43 | 2 -3 9 | |||
_ х3а4 | 55 | 7 -5 5 | А4=5 | |||
х3-а4´ | 0 | 7 -10 8 | ||||
x4 | -3 | а5= -3 |
Таким образом, а5 =
– 3, но по условию а5 = 0, т.е. – 3 = 0, откуда = 3. Получим расширенное представление числа = 157 = (1, 1, 2, 3, 3) по основаниям