powermod
Exponenciação modular: o resto da divisão de uma potência por um módulo.
Categoria: Symbolic Computations in MATLAB > Operators and Elementary Operations
Sintaxe
r = powermod(a, b, m)
Calcula mod(a^b, m) sem formar a potência completa.
Descrição
O resultado é igual a mod(a^b, m), mas a potência é reduzida passo a passo por quadrados sucessivos, de modo que expoentes grandes não estouram. É a operação básica da aritmética modular na teoria dos números e em esquemas como o RSA.
Os argumentos devem ser inteiros e o módulo positivo; caso contrário ocorre um erro. Um expoente negativo usa o inverso modular da base, e o resultado é NaN quando a base não tem inverso. Bases em array produzem um array do mesmo tamanho.
Argumentos de entrada
a- Base inteira, escalar ou array.
b- Expoente inteiro não negativo.
m- Módulo inteiro positivo.
Argumentos de saída
r- Resto no intervalo de
0am-1.
Exemplo
Potências grandes módulo um número
powermod(2, 10, 1000)
powermod([2 3 5], 20, 7)
powermod(7, 128, 13)
ans = 24
ans = 1×3
4 2 4
ans = 3
Observações
No MatLivre powermod aceita apenas argumentos numéricos (double ou tipos inteiros); inteiros simbólicos geram erro.