Google

NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7">

XXXVIGMP 関数

以下の関数により、GNU MP ライブラリを使用して任 意長の整数を使用することが可能になります。これらの関数を利用可能と するには、オプション --with-gmp を使用することにより GMPサポートを有効にしてPHP をコンパイルする必要があります。

http://www.swox.com/gmp/ から GMP ライブラリをダウンロード可能です。このサイ トでは、GMP のマニュアルも入手可能です。

これらの関数を使用するには、GMP バージョン 2 以降が必要です。いく つかの関数はより新しいバージョンの GMP ライブラリを必要とする可能性 があります。

これらの関数は、PHP 4.0.4 で追加されました。

注意 多くの GMP 関数は、resource で定義されたGMP 数 を引数としてとります。しかし、これらの関数の多くは、数値と文字列 の両方を引数として指定可能で、後者は数値に変換することが可能です。 また、整数引数を使用して処理を行うより高速な関数がある場合には、 指定された引数が整数である場合により低速となる関数の代わりに使用 されます。これは透過的に行われるため、結果的にGMP数値を引数とする 全ての関数について整数を使用することが可能です。関数 gmp_init() も参照下さい。

例 1GMP を使用した階乗関数

<?php
function fact ($x) {
    if ($x <= 1) 
        return 1;
    else
        return gmp_mul ($x, fact ($x-1));
}

print gmp_strval (fact (1000)) . "\n";
?>
この例は、1000の階乗(非常に大きな数です)を非常に高速に計算します。

目次
gmp_abs -- 絶対値
gmp_add -- 数値の加算
gmp_and -- 論理演算 AND
gmp_clrbit -- ビットをクリアする
gmp_cmp -- 数を比較する
gmp_com --  aの補数を計算する
gmp_div_q -- 数値の割算
gmp_div_qr -- 割算を行い、商と余りを得る
gmp_div_r -- 割算の余り
gmp_div -- 割算を行う
gmp_divexact -- 正確な割算
gmp_fact -- 階乗
gmp_gcd -- 最大公約数を計算する
gmp_gcdext -- 最大公約数と乗数を計算する
gmp_hamdist -- ハミング距離
gmp_init -- GMP 数を作成する
gmp_intval -- GMP 数を整数に変換する
gmp_invert -- 法による逆
gmp_jacobi -- ヤコビ記号
gmp_legendre -- ルジェンドル記号
gmp_mod -- モジュロ演算
gmp_mul -- 数値の乗算
gmp_neg -- 符号を反転する
gmp_or -- 論理演算 OR
gmp_perfect_square -- 平方数かどうかを調べる
gmp_popcount -- カウントを増やす
gmp_pow -- 累乗
gmp_powm -- 累乗とモジュロ
gmp_prob_prime -- 数が"ほぼ素数"であるかどうかを調べる
gmp_random -- 乱数
gmp_scan0 -- 0を探す
gmp_scan1 -- 1 を探す
gmp_setbit -- ビットを設定する
gmp_sign -- 数の符号
gmp_sqrt -- 平方根
gmp_sqrtrm -- 余りと平方根
gmp_strval -- GMP 数を文字列に変換する
gmp_sub -- 数値の減算
gmp_xor -- 論理演算 XOR