array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.bcpowmod.php', 1 => 'bcpowmod', ), 'up' => array ( 0 => 'ref.bc.php', 1 => 'BC Math 関数', ), 'prev' => array ( 0 => 'function.bcpow.php', 1 => 'bcpow', ), 'next' => array ( 0 => 'function.bcscale.php', 1 => 'bcscale', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/bc/functions/bcpowmod.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5, PHP 7, PHP 8)
bcpowmod — 任意精度数値のべき乗の、指定した数値による剰余
modulus
で割った余りを求めることを考慮して、
num
の
exponent
乗を高速に計算します。
num
基数を表す整数の文字列。 (つまり、scale は 0 でなければいけません)
exponent
指数を表す、負でない、整数の文字列。 (つまり、scale は 0 でなければいけません)
modulus
法を表す、整数の文字列。 (つまり、scale は 0 でなければいけません)
scale
このオプションパラメータを使用して、結果の小数点以下の桁数を指定します。省略した場合は、bcscale() 関数でグローバルに設定した桁数をデフォルトとして使用します。それも設定されていない場合は 0
を使用します。
結果を文字列で返します。modulus
が 0
の場合、
または exponent
が負の場合、false
を返します。
バージョン | 説明 |
---|---|
8.0.0 |
scale は、nullable になりました。
|
以下の 2 つの文は機能的に同じです。しかし bcpowmod() バージョンのほうが実行時間が早いうえ、 より大きな値の計算が可能です。
<?php
$a = bcpowmod($x, $y, $mod);
$b = bcmod(bcpow($x, $y), $mod);
// $a と $b は同じ値になります
?>
注意:
このメソッドでは剰余計算を行っているので、 正の整数以外を指定すると予期せぬ結果となります。