bcpowmod

(PHP 5, PHP 7, PHP 8)

bcpowmodEleva um número de precisão arbitrária para outro, reduzido por um módulo especificado

Descrição

bcpowmod(
    string $num,
    string $exponent,
    string $modulus,
    ?int $scale = null
): string

Utiliza o método de exponenciação rápida para elevar num para a potência exponent levando em conta o módulo modulus.

Parâmetros

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.

Valor Retornado

Retorna o resultado como uma string, ou false se modulus for 0 ou o exponent for negativo.

Registro de Alterações

Versão Descrição
8.0.0 scale agora pode ser null.

Exemplos

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.

?>

Notas

Note:

Por esse método realizar operações em módulo, números que não sejam inteiros positivos podem gerar resultados inesperados.

Veja Também

  • bcpow() - Eleva um número de precisão arbitrária a outro
  • bcmod() - Obtém o módulo de um número com precisão arbitrária