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