array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'function.bcpowmod.php', 1 => 'bcpowmod', ), 'up' => array ( 0 => 'ref.bc.php', 1 => 'BC Math Funções', ), 'prev' => array ( 0 => 'function.bcpow.php', 1 => 'bcpow', ), 'next' => array ( 0 => 'function.bcscale.php', 1 => 'bcscale', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'reference/bc/functions/bcpowmod.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(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.