Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
8.4. МОДУЛЬНАЯ АРИФМЕТИКАВ некоторых приложениях удобно выполнять арифметические операции над целыми числами в "модульном" представлении (т. е. в системе классов вычетов). Это значит, что вместо того, чтобы представлять целое число в системе счисления с фиксированным основанием, его представляют вычетами по модулям из множества попарно взаимно простых чисел. Если Сложение, вычитание и умножение легко выполняются, если их результаты заключены между
Тогда
Пример 8.4. Пусть (представление числа Однако неясно, как в модульной арифметике экономно выполнять деление. Заметим, что отношение Преимущество модульного представления в основном в том, что арифметические операции можно реализовать с меньшими аппаратными затратами, чем при обычном представлении, поскольку вычисления выполняются независимо для каждого модуля. В отличие от обычного (позиционного) представления чисел, здесь не нужны никакие переносы. К сожалению, проблемы эффективного деления и контроля переполнений (т. е. выхода результата за пределы области, заключенной между Тем не менее содержащиеся здесь идеи находят применение, главным образом при рассмотрении полиномов, поскольку делить полиномы скорее всего не потребуется. Кроме того, как мы увидим в следующем разделе, вычисление полиномов и их вычетов (по модулю других полиномов) тесно связаны. Сейчас покажем, что модульная арифметика целых чисел "работает" так, как нужно. Первая часть доказательства состоит в том, чтобы доказать, что соотношения (8.17) — (8.19) выполняются. Эти соотношения очевидны, и мы оставляем их в качестве упражнения. Вторая часть доказательства — показать, что соответствие Лемма 8.1. Пусть
взаимно однозначно. Доказательство. Очевидно, что для каждого и найдется соответствующий
Для того чтобы можно было пользоваться модульной арифметикой, нужны алгоритмы, осуществляющие переход от позиционного представления к модульному и обратно. Один из методов перехода от позиционного представления целого числа и к его модульному представлению состоит в том, чтобы разделить и на каждое из чисел Допустим, что каждое из чисел
требуется, грубо говоря, Однако можно проделать эту работу за значительно меньшее время, если применить метод, напоминающий метод деления полиномов из разд. 7.2. Вместо того чтобы делить число и на каждый из Алгоритм 8.4. Вычисление вычетов Вход. Модули Выход. Числа Метод. Допустим, что (Если нужно, добавим ко входу лишние модули, равные 1, чтобы сделать Пусть число
Таким образом, Сначала вычисляем числа Теорема 8.8. Алгоритм 8.4 правильно вычисляет числа Доказательство. Доказательство следует плану доказательства теоремы 7.3, где вычислялись значения полинома в корнях Теорема 8.9. Алгоритм 8.4 тратит Доказательство. Легко видеть, что больше всего времени требуют циклы в строках 3, 4 и 7—9. Каждый из них занимает
Рис. 8.3. Вычисление вычетов. Об Следствие. Если для представления каждого из модулей
|
1 |
Оглавление
|