Перевод числа из СОК в обобщенную позиционную систему
Isaeva (обсуждение | вклад) |
Isaeva (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
Рассмотрим метод определения величины числа связанный с переводом числа из системы остаточных классов в обобщенную позиционную систему (ОПС). Для этого выявим связь между представлением некоторого числа в этих двух системах. | Рассмотрим метод определения величины числа связанный с переводом числа из системы остаточных классов в обобщенную позиционную систему (ОПС). Для этого выявим связь между представлением некоторого числа в этих двух системах. | ||
− | Пусть СОК задается основаниями <math>p_1, p_2, \ldots, p_n</math> и <math>A = {\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n</math> - число в этой системе. И пусть <math>p_1, p_2, \ldots, p_n</math> являются также основаниями ОПС, тогда число <math>A</math> можно представить в виде | + | Пусть СОК задается основаниями <math>p_1, p_2, \ldots, p_n</math> и <math>A = ({\alpha}_1, {\alpha}_2, \ldots, {\alpha}_n)</math> - число в этой системе. И пусть <math>p_1, p_2, \ldots, p_n</math> являются также основаниями ОПС, тогда число <math>A</math> можно представить в виде |
:<math>A = a_n\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-1} + a_{n-1}\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-2} + \ldots + a_3\cdot p_1\cdot p_2 + a_2\cdot p_1 + a_1</math> | :<math>A = a_n\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-1} + a_{n-1}\cdot p_1\cdot p_2\cdot \ldots \cdot p_{n-2} + \ldots + a_3\cdot p_1\cdot p_2 + a_2\cdot p_1 + a_1</math> | ||
Строка 9: | Строка 9: | ||
Очевидно, что диапазоны чисел, представимых в СОК и ОПС совпадают, т.е. можно говорить о наличии взаимно однозначного соответствия между множеством представлений чисел в СОК и ОПС. | Очевидно, что диапазоны чисел, представимых в СОК и ОПС совпадают, т.е. можно говорить о наличии взаимно однозначного соответствия между множеством представлений чисел в СОК и ОПС. | ||
− | + | Предыдущее равенство можно переписать в следующем виде: | |
:<math>A = a_1 + p_1(a_2 + p_2(a_3 + \ldots +p_{n-2}(a_{n-1} + p_{n-1} a_n) \ldots ))</math>, | :<math>A = a_1 + p_1(a_2 + p_2(a_3 + \ldots +p_{n-2}(a_{n-1} + p_{n-1} a_n) \ldots ))</math>, | ||
Строка 27: | Строка 27: | ||
Причем при определении цифр <math>a_i</math> по этим формулам все вычисления можно вести в СОК. | Причем при определении цифр <math>a_i</math> по этим формулам все вычисления можно вести в СОК. | ||
− | Действительно, из формул следует, что <math>a_1 = {|A|}_{p_1}</math>, т.е. | + | Действительно, из формул следует, что <math>a_1 = {|A|}_{p_1}</math>, т.е. <math>a_1</math> - первая СОК цифра, или <math>a_1 = {\alpha}_1</math>. |
+ | Для получения <math>a_1</math> сперва представим <math>A - a_1</math> в остаточном коде. Очевидно, что <math>A - a_1</math> делится на <math>p_1</math>. Более того, <math>p_1</math> взаимно просто со всеми другими модулями. Следовательно, для нахождения цифры <math>a_2</math> может быть использована процедура деления без остатка: | ||
+ | |||
+ | :<math>a_2 = \left|\frac{A - a_1}{p_1}\right|_{p_2}</math>. | ||
+ | |||
+ | Таким путем, с помощью вычитаний и делений в остаточной записи все цифры ОПС могут быть получены. При этом замечено, что | ||
+ | |||
+ | :<math>a_1 = |A|_{p_1}</math>, <math>a_2 = \left|\left[\frac{A}{p_1}\right]\right|_{p_2}</math>, <math>a_3 = \left|\left[\frac{A}{p_1\cdot p_2}\right]\right|_{p_3}</math> | ||
+ | |||
+ | и, вообще, для <math> i > 1 </math> | ||
+ | |||
+ | :<math>a_i = \left|\left[\frac{A}{p_1\cdot p_2 \cdot \ldots \cdot p_{i-1}}\right]\right|_{p_i}</math>. | ||
+ | |||
+ | |||
+ | Перевод, осуществляемый согласно описанному алгоритму,содержит всего <math>2 \cdot (n-1)</math> остаточных арифметических операций вычитания и деления без остатка, где <math>n</math> – число модулей системы. |
Версия 14:13, 15 октября 2014
Рассмотрим метод определения величины числа связанный с переводом числа из системы остаточных классов в обобщенную позиционную систему (ОПС). Для этого выявим связь между представлением некоторого числа в этих двух системах.
Пусть СОК задается основаниями и - число в этой системе. И пусть являются также основаниями ОПС, тогда число можно представить в виде
где – коэффициенты (цифры) ОПС.
Очевидно, что диапазоны чисел, представимых в СОК и ОПС совпадают, т.е. можно говорить о наличии взаимно однозначного соответствия между множеством представлений чисел в СОК и ОПС.
Предыдущее равенство можно переписать в следующем виде:
- ,
откуда следует, что цифры ОПС могут быть получены из соотношений:
- , где ,
- , где ,
- , где .
Причем при определении цифр по этим формулам все вычисления можно вести в СОК.
Действительно, из формул следует, что , т.е. - первая СОК цифра, или . Для получения сперва представим в остаточном коде. Очевидно, что делится на . Более того, взаимно просто со всеми другими модулями. Следовательно, для нахождения цифры может быть использована процедура деления без остатка:
- .
Таким путем, с помощью вычитаний и делений в остаточной записи все цифры ОПС могут быть получены. При этом замечено, что
- , ,
и, вообще, для
- .
Перевод, осуществляемый согласно описанному алгоритму,содержит всего остаточных арифметических операций вычитания и деления без остатка, где – число модулей системы.