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ã®éšŽä¹—(éžå¸¸ã«å¤§ããªæ•°ã§ã™)ã‚’éžå¸¸ã«é«˜é€Ÿã«è¨ˆç®—ã—ã¾ã™ã€‚