(PHP 5, PHP 7, PHP 8)
bcpowmod — Eleva un número de precisión arbitraria a otro, reducido por un módulo especificado
Usa el método de exponenciación rápida para aumentar
num
a la potencia
exponent
con respecto al módulo
modulus
.
num
La base, como un string integral (es decir, la escala tiene que ser cero).
exponent
El exponente, como un string integral no negativo (es decir, la escala tiene que ser cero).
modulus
El módulo, como un string integral (es decir, la escala tiene que ser cero).
scale
null
, se establecerá por defecto en la escala predeterminada establecida con bcscale(),
o se utilizará el valor de la directiva INI
bcmath.scale
.
Devuelve el resultado como un string.
Esta función lanza un ValueError en los siguientes casos:
num
, exponent
o modulus
no es un string numérico con formato válido de BCMathnum
, exponent
o modulus
tiene una parte fraccionariaexponent
es un valor negativoscale
está fuera del rango válido
Esta función lanza una excepción DivisionByZeroError si modulus
es 0
.
Versión | Descripción |
---|---|
8.0.0 |
scale ahora es nullable.
|
8.0.0 |
Ahora lanza un ValueError en vez de devolver false si exponent es un valor negativo.
|
8.0.0 |
Dividiendo por 0 ahora lanza una excepción DivisionByZeroError en vez de devolver false .
|
Los siguientes dos comandos son funcionalmente idénticos. La version bcpowmod() sin embargo, se ejecuta en menos tiempo y admite mas parametros.
<?php
$a = bcpowmod($x, $y, $mod);
$b = bcmod(bcpow($x, $y), $mod);
// $a y $b son iguales el uno al otro.
?>
Nota:
Debido a que este método utiliza la operación módulo, podrían obtenerse resultados inesperados en números enteros no positivos.