2013-04-11 15 views
3

Я понимаю концепцию Residual Number System и концепцию Mixed Radix system, но мне трудно получить какие-либо методы преобразования, которые я нахожу для работы в простом примере.Как преобразовать из системы остаточного числа в смешанную систему Radix?

Я начал с искусства программирования Кнута, но это слишком сильно повлияло на теорию преобразования, и как только Эйлер упоминался, я был потерян. В Википедии есть nice section по этому вопросу, в котором я пробовал here и here, но оба раза я не мог вернуться к тому, с чего я начал.

Я нашел хорошую статью here (PDF), которую я сгустил в соответствующих разделах here, но я не понимаю мультипликативные обратные и их обозначения. В частности, как y_2 = | (3 - 19) | (1/31) | _7 | _7 = | 5 * 5 | _7 Особенно, как | 1/31 | _7 = 5

+0

Я не уверен в статье Википедии является правильным. –

+0

Спасибо за изменения, я прочитал страницу «Обсуждение» на странице «Система остаточного номера», и [this] (http://en.wikipedia.org/wiki/Chinese_remainder_theorem) стоит прочитать. – eyepatch

ответ

1

Мультипликативные обратные должны быть взяты с относительно модуля (здесь 7). Так как модуль 7 является простым, то каждое число (по модулю 7) имеет обратный. В частности, 31_7 = 3_7 (так как 31 = 4 * 7 +3 - извините, если я слишком дидактичен), а его обратный 5, потому что 3 * 5 = 15 = 1_7. Таким образом, мы можем написать | 1/31 | _7 = 5.

Теперь

y_2 = |(3 - 19) |(1/31)|_7 |_7 
    = | (-16) * 5 |_7 
    = | 5 * 5 |_7   since -16 = (-3)*7 + 5 
    = 4 
+0

Теперь я понимаю, как вы получаете | -16 | _7 = 5, это необычный способ обработки отрицательного модуля в моем опыте, но я могу с этим справиться. Я все еще теряюсь в этом бизнесе (1/31) | _7 = 5. Я понимаю, что | 31 | _7 = | 3 | _7, но я не буду следовать за вами по обратному. 3 * 5 = 15, но | 15 | _7 = 0. – eyepatch

+0

ах ... 15 = 2 * 7 + 1, поэтому | 15 | _7 = 1. – lmsteffan