(PHP 5, PHP 7, PHP 8)
bcpowmod — Calcule le reste modulo d'un nombre élevé à une puissance
Utilise la méthode d'exponentiation rapide pour élever le nombre
num
à la puissance
exponent
, et en calculant le reste modulo
modulus
.
num
La base, sous la forme d'une chaîne de caractères (c'est-à-dire que l'échelle doit être nulle).
exponent
L'exposant, sous la forme d'une chaîne de caractères non négarive (c'est-à-dire que l'échelle doit être nulle).
modulus
Le modulo, sous la forme d'une chaîne de caractères (c'est-à-dire que l'échelle doit être nulle).
scale
null
, il prendra par défaut la valeur définie par bcscale(),
ou, à défaut, la valeur de la directive INI
bcmath.scale
.
Retourne le résultat, sous la forme d'une chaîne de caractères.
Cette fonction lève une exception ValueError dans les cas suivants :
num
, exponent
ou modulus
n'est pas une chaîne numérique BCMath correctement forméenum
, exponent
ou modulus
possède une partie fractionnaireexponent
est une valeur négativescale
est en dehors de la plage valide
Cette fonction lève une exception DivisionByZeroError si modulus
est égal à 0
.
Version | Description |
---|---|
8.0.0 |
scale est désormais nullable.
|
8.0.0 |
Lève désormais une exception ValueError au lieu de retourner false si exponent est une valeur négative.
|
8.0.0 |
La division par 0 lève désormais une exception DivisionByZeroError au lieu de retourner false .
|
Les deux lignes suivantes produisent le même résultat. La version qui utilise bcpowmod() est bien plus rapide, et accepte des paramètres plus grands.
<?php
$a = bcpowmod($x, $y, $mod);
$b = bcmod(bcpow($x, $y), $mod);
// $a et $b sont égaux.
?>
Note:
Comme cette méthode utilise les opérations de modulo, les nombres non positifs risquent de donner des résultats inattendus.