(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 la valeur par défaut de l'échelle définie avec bcscale(),
ou utilisera la valeur de la directive INI
bcmath.scale
si disponible.
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.