powermod

Вычислите модульную степень номера или полинома

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

powermod(b, e, m)

Описание

powermod(b, e, m) вычисляет b mod e m.

Если b и m числа, модульная степень b mod e, m может также быть вычислен прямым вызовом b^e mod m. Однако powermod(b, e, m) избегает издержек вычисления промежуточного результата b e и вычисляет модульную степень намного более эффективно.

Если b рациональное число, затем модульная инверсия знаменателя вычисляется и умножается с числителем.

Если модуль m целое число, затем основной b должен или быть номер, многочленное выражение или полином, который конвертируем к IntMod(m)- полином.

Если модуль m многочленное выражение, затем основной b должен или быть номер, многочленное выражение или полином по содействующему звонку выражений MuPAD®.

Если модуль m полином доменного типа DOM_POLY, затем основной b должен или быть номер или полином того же типа как m или многочленное выражение, которое может быть преобразовано в полином того же типа как m.

Обратите внимание на то, что системная функция mod отвечающий за арифметику в остаточных классах может быть изменен пользователем; смотрите страницу справки mod. Функциональный powermod реагирует соответственно. Смотрите Пример 5.

Внутренне, полиномы разделены на функциональный divide.

Примеры

Пример 1

Мы вычисляем 3^(123456) mod 7:

powermod(3, 123456, 7)

Если основа является рациональным числом, модульная инверсия знаменателя вычисляется и умножается с числителем:

powermod(3/5, 1234567, 7)

Пример 2

Коэффициенты следующего многочленного выражения вычисляются по модулю 7:

powermod(x^2 + 7*x - 3, 10, 7)

Пример 3

Мощность следующего многочленного выражения уменьшена по модулю полиномиальный x 2 + 1:

powermod(x^2 + 7*x - 3, 10, x^2 + 1)

Пример 4

Тип возвращаемого значения совпадает с типом основы: полином возвращен, если основа является полиномом:

powermod(poly(x^2 + 7*x - 3), 2, x^2 + 1),
powermod(poly(x^2 + 7*x - 3), 2, poly(x^2 + 1))

Если основа является многочленным выражением, powermod возвращает многочленное выражение:

powermod(x^2 + 7*x - 3, 2, x^2 + 1),
powermod(x^2 + 7*x - 3, 2, poly(x^2 + 1))

Пример 5

Следующее переопределение _mod переключатели к симметричному представлению модульных чисел:

R := Dom::IntegerMod(17):
_mod := mods: powermod(poly(2*x^2, R), 3, poly(3*x + 1, R))

Следующая команда восстанавливает представление по умолчанию:

_mod := modp: powermod(poly(2*x^2, R), 3, poly(3*x + 1, R))

unalias(R):

Параметры

b

Основа: целое число, рациональное число или полином типа DOM_POLY, или многочленное выражение

e

Степень: неотрицательное целое число

m

Модуль: целое число (по крайней мере 2) или полином типа DOM_POLY, или многочленное выражение

Возвращаемые значения

В зависимости от типа b, возвращаемое значение является целым числом, полиномом или многочленным выражением. FAIL возвращен, если выражение не может быть преобразовано в полином.

Перегруженный

b

Смотрите также

Функции MuPAD