Php/docs/function.bcpowmod

提供:Dev Guides
< Php
移動先:案内検索

bcpowmod

(PHP 5, PHP 7)

bcpowmod任意精度数値のべき乗の、指定した数値による剰余


説明

bcpowmod ( string $num , string $exponent , string $modulus [, int|null $scale = null ] ) : string

modulus で割った余りを求めることを考慮して、 numexponent 乗を高速に計算します。


パラメータ

num
基数を表す整数の文字列。 (つまり、scale は 0 でなければいけません)
exponent
指数を表す、負でない、整数の文字列。 (つまり、scale は 0 でなければいけません)
modulus
法を表す、整数の文字列。 (つまり、scale は 0 でなければいけません)
scale
このオプションパラメータを使用して、 結果の小数点以下の桁数を指定します。省略した場合は、bcscale() 関数でグローバルに設定した桁数をデフォルトとして使用します。それも設定されていない場合は 0 を使用します。


返り値

結果を文字列で返します。modulus0 の場合、 または exponent が負の場合、false を返します。


注意

注意:

このメソッドでは剰余計算を行っているので、 正の整数以外を指定すると予期せぬ結果となります。

変更履歴

バージョン 説明
8.0.0 scale は、nullable になりました。


以下の 2 つの文は機能的に同じです。しかし bcpowmod() バージョンのほうが実行時間が早いうえ、 より大きな値の計算が可能です。

<?php$a = bcpowmod($x, $y, $mod);$b = bcmod(bcpow($x, $y), $mod);// $a と $b は同じ値になります?>

参考

  • bcpow() - 任意精度数値をべき乗する
  • bcmod() - 2 つの任意精度数値の剰余を取得する