(PHP 5, PHP 7, PHP 8)
bcpowmod — Eleva um número de precisão arbitrária para outro, reduzido por um módulo especificado
Utiliza o método de exponenciação rápida para elevar num
para a potência exponent
levando em conta o módulo modulus
.
num
O número base, na forma de inteiro em string (a escala tem de ser zero).
exponent
O número expoente, na forma de um inteiro não negativo, em string (a escala tem de ser zero).
modulus
O número módulo, na forma de um inteiro em string (a escala tem de ser zero).
scale
Este parâmetro opcional é usado para definir o número de dígitos após a casa decimal do resultado. Se omitido, o padrão será a escala definida globalmente com a função bcscale() ou, em último caso, 0
se a escala não tiver sido definida.
Retorna o resultado como uma string, ou false
se modulus
for 0
ou o exponent
for negativo.
Versão | Descrição |
---|---|
8.0.0 | scale agora pode ser null. |
As seguintes instruções têm funcionalidades idênticas. A versão bcpowmod(), no entanto, executa em menos tempo e pode aceitar parâmetros maiores.
<?php
$a = bcpowmod($x, $y, $mod);
$b = bcmod(bcpow($x, $y), $mod);
// $a e $b são iguais.
?>
Nota:
Por esse método realizar operações em módulo, números que não sejam inteiros positivos podem gerar resultados inesperados.