bcpowmod

(PHP 5, PHP 7, PHP 8)

bcpowmodEleva un número de precisión arbitraria a otro, reducido por un módulo especificado

Descripción

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

Usa el método de exponenciación rápida para aumentar num a la potencia exponent con respecto al módulo modulus.

Parámetros

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
Este parámetro se utiliza para establecer el número de dígitos después del punto decimal en el resultado. Si es null, se establecerá por defecto en la escala predeterminada establecida con bcscale(), o se utilizará el valor de la directiva INI bcmath.scale.

Valores devueltos

Devuelve el resultado como un string.

Errores/Excepciones

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 BCMath
  • num, exponent o modulus tiene una parte fraccionaria
  • exponent es un valor negativo
  • scale está fuera del rango válido

Esta función lanza una excepción DivisionByZeroError si modulus es 0.

Historial de cambios

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.

Ejemplos

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.

?>

Notas

Nota:

Debido a que este método utiliza la operación módulo, podrían obtenerse resultados inesperados en números enteros no positivos.

Ver también

  • bcpow() - Elevar un número de precisión arbitraria a otro
  • bcmod() - Obtiene el módulo de un número de precisión arbitraria
  • BcMath\Number::powmod()

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top