GMP for PHP

php -m windows 下查看php已開啟的拓展

GMP是The GNU MP Bignum Library,是一個開源的數(shù)學(xué)運算庫,它可以用于任意精度的數(shù)學(xué)運算,包括有符號整數(shù)、有理數(shù)和浮點數(shù)。它本身并沒有精度限制,只取決于機器的硬件情況。
  本函數(shù)庫能處理的數(shù)值范圍只到長整數(shù)與倍浮點數(shù)的范圍。若要處理超過上述范圍的數(shù)值,要使用 bc 高精確度函數(shù)庫 。本函數(shù)庫定義了圓周率的常量 m_pi 值為 3.14159265358979323846。
函數(shù):abs: 取得絕對值。 acos: 取得反余弦值。 asin: 取得反正弦值。 atan: 取得反正切值。 atan2: 計算二數(shù)的反正切值。 base_convert: 轉(zhuǎn)換數(shù)字的進位方式。 bindec: 二進位轉(zhuǎn)成十進位。 ceil: 計算大于指定數(shù)的最小整數(shù)。 cos: 余弦計算。 decbin: 十進位轉(zhuǎn)二進位。 dechex: 十進位轉(zhuǎn)十六進位。 decoct: 十進位轉(zhuǎn)八進位。 exp: 自然對數(shù) e 的次方值。 floor: 計算小于指定數(shù)的最大整數(shù)。 getrandmax: 隨機數(shù)的最大值。 hexdec: 十六進位轉(zhuǎn)十進位。 log: 自然對數(shù)值。 log10: 10 基底的對數(shù)值。 max: 取得最大值。 min: 取得最小值。 mt_rand: 取得隨機數(shù)值。 mt_srand: 配置隨機數(shù)種子。 mt_getrandmax: 隨機數(shù)的最大值。 number_format: 格式化數(shù)字字符串。 octdec: 八進位轉(zhuǎn)十進位。 pi: 圓周率。 pow: 次方。 rand: 取得隨機數(shù)值。 round: 四舍五入。 sin: 正弦計算。 sqrt: 開平方根。 srand: 配置隨機數(shù)種子。 tan: 正切計算。
函數(shù)舉例:abs 取得絕對值。 語法: mixed abs(mixed number); 返回值: 混合類型資料 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 返回參數(shù) number 的絕對值。若 number 是倍精確浮點數(shù),則返回值也是倍浮點數(shù);其它的類型則返回類型為整數(shù)。
acos 取得反余弦值。 語法: float acos(float arg); 返回值: 浮點數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 返回參數(shù) arg 的反余弦值 (arc cosine)。 參考: asin() atan()
asin 取得反正弦值。 語法: float asin(float arg); 返回值: 浮點數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 返回參數(shù) arg 的反正弦值 (arc sine)。 參考: acos() atan()
atan 取得反正切值。 語法: float atan(float arg); 返回值: 浮點數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 返回參數(shù) arg 的反正切值 (arc tangent)。 參考: acos() asin()
atan2 計算二數(shù)的反正切值。 語法: float atan2(float y, float x); 返回值: 浮點數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)用來計算二數(shù) y、x 的反正切值,計算結(jié)果與 atan() 計算 y/x 類似,但本函數(shù)會因 x、y 的正負(fù)號影響結(jié)果。而本函數(shù)的返回值必落在正負(fù)的圓周率間 (-pi <= (值) ?= pi) 參考 acos() atan() asin()
base_convert 轉(zhuǎn)換數(shù)字的進位方式。 語法: string base_convert(string number, int frombase, int tobase); 返回值: 字符串 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)將數(shù)字字符串 number 從以 frombase 進位轉(zhuǎn)換到以 tobase 進位。本式能夠處理的由以二進位到以三十六進位之間的進位方式。在十進位之前都是以數(shù)字表示,而在超過十進位之后就用英文字母表示。例如十六進位個位數(shù)依序為 123456789abcdef,10 的順序是第十七個,這時才進一位。而三十六進位 a 是第十個、b 為第十一個、z 為第三十六個、10 是第三十七個,這時才進位。 使用范例 本例將十六進位字符串轉(zhuǎn)成二進位字符串 <?php $binary = base_convert($hexadecimal, 16, 2); echo "十六進位字符串"$hexadecimal"轉(zhuǎn)成二進位為"$binary"。"; ?>
bindec 二進位轉(zhuǎn)成十進位。 語法: int bindec(string binary_string); 返回值: 整數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)將二進位數(shù)字字符串轉(zhuǎn)成十進位的整數(shù)。由于 php 使用 32 位有正負(fù)號整數(shù)計算,能處理的最大十進位數(shù)字為 2147483647,也就是二進位數(shù)字的 1111111111111111111111111111111 (31 個 1)。 參考: decbin()
ceil 計算大于指定數(shù)的最小整數(shù)。 語法: int ceil(float number); 返回值: 整數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)用來計算比浮點參數(shù) number 大的最小整數(shù)。 使用范例 本例返回值為 4。 <?php $nextint=ceil(3.14); echo $nextint; ?> 參考: floor() round()
cos 余弦計算。 語法: float cos(float arg); 返回值: 浮點數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)計算參數(shù) arg 的余弦值 (cosine)。 參考: sin() tan()
decbin 十進位轉(zhuǎn)二進位。 語法: string decbin(int number); 返回值: 字符串 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)將十進位數(shù)字轉(zhuǎn)成二進位字符串。由于 php 使用 32 位有正負(fù)號整數(shù)計算,能處理的最大十進位數(shù)字為 2147483647,也就是二進位數(shù)字的 1111111111111111111111111111111 (31 個 1)。 參考: bindec()
dechex 十進位轉(zhuǎn)十六進位。 語法: string dechex(int number); 返回值: 字符串 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)將十進位數(shù)字轉(zhuǎn)成十六進位字符串。由于 php 使用 32 位有正負(fù)號整數(shù)計算,能處理的最大十進位數(shù)字為 2147483647,也就是十六進位數(shù)字 7fffffff。 參考: hexdec()
decoct 十進位轉(zhuǎn)八進位。 語法: string decoct(int number); 返回值: 字符串 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)將十進位數(shù)字轉(zhuǎn)成八進位字符串。由于 php 使用 32 位有正負(fù)號整數(shù)計算,能處理的最大十進位數(shù)字為 2147483647,也就是八進位數(shù)字 17777777777。 參考: octdec()
exp 自然對數(shù) e 的次方值。 語法: float exp(float arg); 返回值: 浮點數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)計算自然對數(shù) (natural logarithm) 的 arg 次方值。 參考: pow() log()
floor 計算小于指定數(shù)的最大整數(shù)。 語法: int floor(float number); 返回值: 整數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)用來計算比浮點參數(shù) number 小的最大整數(shù)。 使用范例 本例返回值為 3。 <?php $lastint=floor(3.14); echo $lastint; ?> 參考: ceil() round()
getrandmax 亂數(shù)的最大值。 語法: int getrandmax(void); 返回值: 整數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)計算亂數(shù)函數(shù) rand() 可能取得的取得的最大亂數(shù)值。本函數(shù)不需參數(shù)。 參考: rand() srand() mt_rand() mt_srand() mt_getrandmax()
hexdec 十六進位轉(zhuǎn)十進位。 語法: int hexdec(string hex_string); 返回值: 整數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)將十六進位字符串轉(zhuǎn)成十進位數(shù)字。由于 php 使用 32 位有正負(fù)號整數(shù)計算,能處理的最大十六進位數(shù)字為 7fffffff,也就是十進位數(shù)字的 2147483647。 參考: dechex()
log 自然對數(shù)值。 語法: float log(float arg); 返回值: 浮點數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)計算參數(shù) arg 的自然對數(shù) (natural logarithm) 值。
log10 10 基底的對數(shù)值。 語法: float log10(float arg); 返回值: 浮點數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)計算參數(shù) arg 的 10 基底對數(shù)值。
max 取得最大值。 語法: mixed max(mixed arg1, mixed arg2 .... mixed argn); 返回值: 混合類型資料 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)計算參數(shù)間的最大值。若第一個參數(shù)是數(shù)字?jǐn)?shù)組,則會找出該數(shù)組的最大數(shù)字。若第一個參數(shù)非數(shù)組,則需二個以上的參數(shù)。這些數(shù)字可以是整數(shù)、倍精確數(shù)或數(shù)字字符串的類型。參數(shù)的數(shù)目不限,視用戶的需求而定。在計算時,只要有一個參數(shù)是倍精確數(shù),本函數(shù)會將所有的參數(shù)都轉(zhuǎn)成倍精確數(shù),并返回倍精確數(shù)。若參數(shù)只有整數(shù)及數(shù)字字符串,則會將所有的參數(shù)轉(zhuǎn)換成整數(shù),并返回整數(shù)。 參考: min()
min 取得最小值。 語法: mixed min(mixed arg1, mixed arg2 .... mixed argn); 返回值: 混合類型資料 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)計算參數(shù)間的最小值。若第一個參數(shù)是數(shù)字?jǐn)?shù)組,則會找出該數(shù)組的最小數(shù)字。若第一個參數(shù)非數(shù)組,則需二個以上的參數(shù)。這些數(shù)字可以是整數(shù)、倍精確數(shù)或數(shù)字字符串的類型。參數(shù)的數(shù)目不限,視用戶的需求而定。在計算時,只要有一個參數(shù)是倍精確數(shù),本函數(shù)會將所有的參數(shù)都轉(zhuǎn)成倍精確數(shù),并返回倍精確數(shù)。若參數(shù)只有整數(shù)及數(shù)字字符串,則會將所有的參數(shù)轉(zhuǎn)換成整數(shù),并返回整數(shù)。 參考: max()
mt_rand 取得亂數(shù)值。 語法: int mt_rand([int min], [int max]); 返回值: 整數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)不使用一般常用的 libc 來計算亂數(shù)值,而是使用計算速度至少快四倍的馬其賽特旋轉(zhuǎn) (mersenne twister) 演算法來計算亂數(shù)值。有關(guān)馬特賽特旋轉(zhuǎn)演算法可在松本真的 http://www.math.keio.ac.jp/~matumoto/emt.html 找到更多的相關(guān)信息,最佳化的原始程序則在 http://www.scp.syr.edu/~marc/hawk/twister.html。若沒有指定亂數(shù)的最大及最小范圍,本函數(shù)會自動的從 0 到 rand_max 中取一個亂數(shù)。若有指定 min 及 max 的參數(shù),則從指定參數(shù)中取一個數(shù)字,例如 mt_rand(38, 49) 則會從 38 到 49 之間取一個亂數(shù)值。治募?注意的是為使亂數(shù)的亂度最大,每次在取亂數(shù)之前最好使用 mt_srand() 以配置新的亂數(shù)種子。 參考: rand() srand() getrandmax() mt_srand() mt_getrandmax()
mt_srand 配置亂數(shù)種子。 語法: void mt_srand(int seed); 返回值: 無 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)傳入?yún)?shù) seed 后,配置亂數(shù)的種子。治募?注意的是參數(shù) seed 值最好也是隨機出現(xiàn)的數(shù)字,例如利用加入時間做為變量的來源就是不錯的方法,或者開發(fā)其它的硬體周邊界面可取得更好的亂數(shù)。 使用范例 本例加入時間的因素,以執(zhí)行時的百萬分之一秒當(dāng)亂數(shù)種子 <?php mt_srand((double)microtime()1000000); $randval = mt_rand(); echo $randval; ?> 參考: rand() srand() getrandmax() mt_rand() mt_getrandmax()
mt_getrandmax 亂數(shù)的最大值。 語法: int mt_getrandmax(void); 返回值: 整數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)計算亂數(shù)函數(shù) mt_rand() 可能取得的取得的最大亂數(shù)值。本函數(shù)不需參數(shù)。 參考: rand() srand() getrandmax() mt_srand() mt_rand()
number_format 格式化數(shù)字字符串。 語法: string number_format(float number, int [decimals], string [dec_point], string [thousands_sep]); 返回值: 字符串 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)用來將浮點參數(shù) number 格式化。若沒加參數(shù) decimals 則返回的字符串只要整數(shù)部份,加了此參數(shù)才依參數(shù)指定的小數(shù)點位數(shù)返回。參數(shù) dec_point 表示小數(shù)點的表示方式方法,默認(rèn)值是 ".",若需要轉(zhuǎn)換成其它的小數(shù)點就可以在這個參數(shù)改掉。參數(shù) thousands_sep 為整數(shù)部份每三位的分隔符號,默認(rèn)值是 ","。本函數(shù)最特別的地方就是參數(shù)數(shù)目,最少要有一個,也就是欲格式化的字符串;也可以有二個或者四個參數(shù),但不能用三個參數(shù)。治募?注意的是指定小數(shù)點的位數(shù)之后的數(shù)字直接舍棄,沒有四舍五入的情形。 使用范例 <? $short_pi = "3.14159"; $my_pi = number_format($short_pi, 2); echo $my_pi."\n"; // 3.14 $foo = 850017.9021; $new_foo = number_format($foo, 3, ".", " "); echo $new_foo."\n"; // 850 017.902 ?>
octdec 八進位轉(zhuǎn)十進位。 語法: string decoct(int number); 返回值: 字符串 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)將八進位字符串轉(zhuǎn)成十進位數(shù)字。由于 php 使用 32 位有正負(fù)號整數(shù)計算,能處理最大的八進位數(shù)字為 17777777777,也就是十進位數(shù)字的 2147483647。 參考: decoct()
pi 圓周率。 語法: double pi(void); 返回值: 倍精確數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)返回圓周率。不需輸入?yún)?shù)。
pow 次方。 語法: float pow(float base, float exp); 返回值: 浮點數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)計算次方值。參數(shù) base 為基底,exp 為冪數(shù)。 使用范例 <?php print(pow(2,3)); // 8 print(pow(5,4)); // 625 ?> 參考: log10() exp()
rand 取得隨機數(shù)值。 語法: int rand([int min], [int max]); 返回值: 整數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)用來取得隨機數(shù)值。若沒有指定隨機數(shù)的最大及最小范圍,本函數(shù)會自動的從 0 到 rand_max 中取一個隨機數(shù)。若有指定 min 及 max 的參數(shù),則從指定參數(shù)中取一個數(shù)字。例如 rand(38, 49) 則會從 38 到 49 之間取一個隨機數(shù)值,unix 系統(tǒng)包含 49、win32 系統(tǒng)不包含 49 (zkimmel@earthlink.net 10-may-1999)。值得注意的是為使隨機數(shù)的亂度最大,每次在取隨機數(shù)之前最好使用 srand() 以配置新的隨機數(shù)種子。 參考: srand() getrandmax() mt_rand() mt_srand() mt_getrandmax()
round 四舍五入。 語法: double round(double val); 返回值: 倍精確數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)用來將數(shù)字小數(shù)點后四舍五入。 使用范例 <?php $foo1 = round(3.4); $foo2 = round(3.5); $foo3 = round(3.6); echo "round(3.4): ".$foo1."
\n"; echo "round(3.5): ".$foo2."
\n"; echo "round(3.6): ".$foo3; ?>
參考: ceil() floor()
sin 正弦計算。 語法: float sin(float arg); 返回值: 浮點數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)計算參數(shù) arg 的正弦值 (sine)。 參考: cos() tan()
sqrt 開平方根。 語法: float sqrt(float arg); 返回值: 浮點數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)將參數(shù) arg 開平方根。
srand 配置隨機數(shù)種子。 語法: void srand(int seed); 返回值: 無 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)傳入?yún)?shù) seed 后,配置隨機數(shù)的種子。值得注意的是參數(shù) seed 值最好也是隨機出現(xiàn)的數(shù)字,例如利用加入時間做為變量的來源就是不錯的方法,或者開發(fā)其它的硬體周邊界面可取得更好的隨機數(shù)。 使用范例 本例加入時間的因素,以執(zhí)行時的百萬分之一秒當(dāng)隨機數(shù)種子 <?php srand((double)microtime()
1000000); $randval = rand(); echo $randval; ?> 參考: rand() getrandmax() mt_srand() mt_rand() mt_getrandmax()
tan 正切計算。 語法: float tan(float arg); 返回值: 浮點數(shù) 函數(shù)種類: 數(shù)學(xué)運算 內(nèi)容說明: 本函數(shù)計算參數(shù) arg 的正切值 (tangent)。 參考: sin() cos()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容