Php GMP

GMP是The GNU MP Bignum Library,是一个开源的数学运算库,它可以用于任意精度的数学运算,包括有符号整数、有理数和浮点数。它本身并没有精度限制,只取决于机器的硬件情况。

  本函数库能处理的数值范围只到长整数与倍浮点数的范围。若要处理超过上述范围的数值,要使用 bc 高精确度函数库 。本函数库定义了圆周率的常量 m_pi 值为 3.14159265358979323846。

函数:
abs: 取得绝对值。 acos: 取得反余弦值。 asin: 取得反正弦值。 atan: 取得反正切值。 atan2: 计算二数的反正切值。 base_convert: 转换数字的进位方式。 bindec: 二进位转成十进位。 ceil: 计算大于指定数的最小整数。 cos: 余弦计算。 decbin: 十进位转二进位。 dechex: 十进位转十六进位。 decoct: 十进位转八进位。 exp: 自然对数 e 的次方值。 floor: 计算小于指定数的最大整数。 getrandmax: 随机数的最大值。 hexdec: 十六进位转十进位。 log: 自然对数值。 log10: 10 基底的对数值。 max: 取得最大值。 min: 取得最小值。 mt_rand: 取得随机数值。 mt_srand: 配置随机数种子。 mt_getrandmax: 随机数的最大值。 number_format: 格式化数字字符串。 octdec: 八进位转十进位。 pi: 圆周率。 pow: 次方。 rand: 取得随机数值。 round: 四舍五入。 sin: 正弦计算。 sqrt: 开平方根。 srand: 配置随机数种子。 tan: 正切计算。

函数举例:
abs 取得绝对值。 语法: mixed abs(mixed number); 返回值: 混合类型资料 函数种类: 数学运算 内容说明: 返回参数 number 的绝对值。若 number 是倍精确浮点数,则返回值也是倍浮点数;其它的类型则返回类型为整数。

acos 取得反余弦值。 语法: float acos(float arg); 返回值: 浮点数 函数种类: 数学运算 内容说明: 返回参数 arg 的反余弦值 (arc cosine)。 参考: asin() atan()

asin 取得反正弦值。 语法: float asin(float arg); 返回值: 浮点数 函数种类: 数学运算 内容说明: 返回参数 arg 的反正弦值 (arc sine)。 参考: acos() atan()

atan 取得反正切值。 语法: float atan(float arg); 返回值: 浮点数 函数种类: 数学运算 内容说明: 返回参数 arg 的反正切值 (arc tangent)。 参考: acos() asin()

atan2 计算二数的反正切值。 语法: float atan2(float y, float x); 返回值: 浮点数 函数种类: 数学运算 内容说明: 本函数用来计算二数 y、x 的反正切值,计算结果与 atan() 计算 y/x 类似,但本函数会因 x、y 的正负号影响结果。而本函数的返回值必落在正负的圆周率间 (-pi <= (值) &lg;= pi) 参考 acos() atan() asin()

base_convert 转换数字的进位方式。 语法: string base_convert(string number, int frombase, int tobase); 返回值: 字符串 函数种类: 数学运算 内容说明: 本函数将数字字符串 number 从以 frombase 进位转换到以 tobase 进位。本式能够处理的由以二进位到以三十六进位之间的进位方式。在十进位之前都是以数字表示,而在超过十进位之后就用英文字母表示。例如十六进位个位数依序为 123456789abcdef,10 的顺序是第十七个,这时才进一位。而三十六进位 a 是第十个、b 为第十一个、z 为第三十六个、10 是第三十七个,这时才进位。 使用范例 本例将十六进位字符串转成二进位字符串 <?php $binary = base_convert($hexadecimal, 16, 2); echo "十六进位字符串\"$hexadecimal\"转成二进位为\"$binary\"。"; ?>

bindec 二进位转成十进位。 语法: int bindec(string binary_string); 返回值: 整数 函数种类: 数学运算 内容说明: 本函数将二进位数字字符串转成十进位的整数。由于 php 使用 32 位有正负号整数计算,能处理的最大十进位数字为 2147483647,也就是二进位数字的 1111111111111111111111111111111 (31 个 1)。 参考: decbin()

ceil 计算大于指定数的最小整数。 语法: int ceil(float number); 返回值: 整数 函数种类: 数学运算 内容说明: 本函数用来计算比浮点参数 number 大的最小整数。 使用范例 本例返回值为 4。 <?php $nextint=ceil(3.14); echo $nextint; ?> 参考: floor() round()

cos 余弦计算。 语法: float cos(float arg); 返回值: 浮点数 函数种类: 数学运算 内容说明: 本函数计算参数 arg 的余弦值 (cosine)。 参考: sin() tan()

decbin 十进位转二进位。 语法: string decbin(int number); 返回值: 字符串 函数种类: 数学运算 内容说明: 本函数将十进位数字转成二进位字符串。由于 php 使用 32 位有正负号整数计算,能处理的最大十进位数字为 2147483647,也就是二进位数字的 1111111111111111111111111111111 (31 个 1)。 参考: bindec()

dechex 十进位转十六进位。 语法: string dechex(int number); 返回值: 字符串 函数种类: 数学运算 内容说明: 本函数将十进位数字转成十六进位字符串。由于 php 使用 32 位有正负号整数计算,能处理的最大十进位数字为 2147483647,也就是十六进位数字 7fffffff。 参考: hexdec()

decoct 十进位转八进位。 语法: string decoct(int number); 返回值: 字符串 函数种类: 数学运算 内容说明: 本函数将十进位数字转成八进位字符串。由于 php 使用 32 位有正负号整数计算,能处理的最大十进位数字为 2147483647,也就是八进位数字 17777777777。 参考: octdec()

exp 自然对数 e 的次方值。 语法: float exp(float arg); 返回值: 浮点数 函数种类: 数学运算 内容说明: 本函数计算自然对数 (natural logarithm) 的 arg 次方值。 参考: pow() log()

floor 计算小于指定数的最大整数。 语法: int floor(float number); 返回值: 整数 函数种类: 数学运算 内容说明: 本函数用来计算比浮点参数 number 小的最大整数。 使用范例 本例返回值为 3。 <?php $lastint=floor(3.14); echo $lastint; ?> 参考: ceil() round()

getrandmax 乱数的最大值。 语法: int getrandmax(void); 返回值: 整数 函数种类: 数学运算 内容说明: 本函数计算乱数函数 rand() 可能取得的取得的最大乱数值。本函数不需参数。 参考: rand() srand() mt_rand() mt_srand() mt_getrandmax()

hexdec 十六进位转十进位。 语法: int hexdec(string hex_string); 返回值: 整数 函数种类: 数学运算 内容说明: 本函数将十六进位字符串转成十进位数字。由于 php 使用 32 位有正负号整数计算,能处理的最大十六进位数字为 7fffffff,也就是十进位数字的 2147483647。 参考: dechex()

log 自然对数值。 语法: float log(float arg); 返回值: 浮点数 函数种类: 数学运算 内容说明: 本函数计算参数 arg 的自然对数 (natural logarithm) 值。

log10 10 基底的对数值。 语法: float log10(float arg); 返回值: 浮点数 函数种类: 数学运算 内容说明: 本函数计算参数 arg 的 10 基底对数值。

max 取得最大值。 语法: mixed max(mixed arg1, mixed arg2 .... mixed argn); 返回值: 混合类型资料 函数种类: 数学运算 内容说明: 本函数计算参数间的最大值。若第一个参数是数字数组,则会找出该数组的最大数字。若第一个参数非数组,则需二个以上的参数。这些数字可以是整数、倍精确数或数字字符串的类型。参数的数目不限,视用户的需求而定。在计算时,只要有一个参数是倍精确数,本函数会将所有的参数都转成倍精确数,并返回倍精确数。若参数只有整数及数字字符串,则会将所有的参数转换成整数,并返回整数。 参考: min()

min 取得最小值。 语法: mixed min(mixed arg1, mixed arg2 .... mixed argn); 返回值: 混合类型资料 函数种类: 数学运算 内容说明: 本函数计算参数间的最小值。若第一个参数是数字数组,则会找出该数组的最小数字。若第一个参数非数组,则需二个以上的参数。这些数字可以是整数、倍精确数或数字字符串的类型。参数的数目不限,视用户的需求而定。在计算时,只要有一个参数是倍精确数,本函数会将所有的参数都转成倍精确数,并返回倍精确数。若参数只有整数及数字字符串,则会将所有的参数转换成整数,并返回整数。 参考: max()

mt_rand 取得乱数值。 语法: int mt_rand([int min], [int max]); 返回值: 整数 函数种类: 数学运算 内容说明: 本函数不使用一般常用的 libc 来计算乱数值,而是使用计算速度至少快四倍的马其赛特旋转 (mersenne twister) 演算法来计算乱数值。有关马特赛特旋转演算法可在松本真的 http://www.math.keio.ac.jp/~matumoto/emt.html 找到更多的相关信息,最佳化的原始程序则在 http://www.scp.syr.edu/~marc/hawk/twister.html。若没有指定乱数的最大及最小范围,本函数会自动的从 0 到 rand_max 中取一个乱数。若有指定 min 及 max 的参数,则从指定参数中取一个数字,例如 mt_rand(38, 49) 则会从 38 到 49 之间取一个乱数值。治募?注意的是为使乱数的乱度最大,每次在取乱数之前最好使用 mt_srand() 以配置新的乱数种子。 参考: rand() srand() getrandmax() mt_srand() mt_getrandmax()

mt_srand 配置乱数种子。 语法: void mt_srand(int seed); 返回值: 无 函数种类: 数学运算 内容说明: 本函数传入参数 seed 后,配置乱数的种子。治募?注意的是参数 seed 值最好也是随机出现的数字,例如利用加入时间做为变量的来源就是不错的方法,或者开发其它的硬体周边界面可取得更好的乱数。 使用范例 本例加入时间的因素,以执行时的百万分之一秒当乱数种子 <?php mt_srand((double)microtime()*1000000); $randval = mt_rand(); echo $randval; ?> 参考: rand() srand() getrandmax() mt_rand() mt_getrandmax()

mt_getrandmax 乱数的最大值。 语法: int mt_getrandmax(void); 返回值: 整数 函数种类: 数学运算 内容说明: 本函数计算乱数函数 mt_rand() 可能取得的取得的最大乱数值。本函数不需参数。 参考: rand() srand() getrandmax() mt_srand() mt_rand()

number_format 格式化数字字符串。 语法: string number_format(float number, int [decimals], string [dec_point], string [thousands_sep]); 返回值: 字符串 函数种类: 数学运算 内容说明: 本函数用来将浮点参数 number 格式化。若没加参数 decimals 则返回的字符串只要整数部份,加了此参数才依参数指定的小数点位数返回。参数 dec_point 表示小数点的表示方式方法,默认值是 ".",若需要转换成其它的小数点就可以在这个参数改掉。参数 thousands_sep 为整数部份每三位的分隔符号,默认值是 ","。本函数最特别的地方就是参数数目,最少要有一个,也就是欲格式化的字符串;也可以有二个或者四个参数,但不能用三个参数。治募?注意的是指定小数点的位数之后的数字直接舍弃,没有四舍五入的情形。 使用范例 <? $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 八进位转十进位。 语法: string decoct(int number); 返回值: 字符串 函数种类: 数学运算 内容说明: 本函数将八进位字符串转成十进位数字。由于 php 使用 32 位有正负号整数计算,能处理最大的八进位数字为 17777777777,也就是十进位数字的 2147483647。 参考: decoct()

pi 圆周率。 语法: double pi(void); 返回值: 倍精确数 函数种类: 数学运算 内容说明: 本函数返回圆周率。不需输入参数。

pow 次方。 语法: float pow(float base, float exp); 返回值: 浮点数 函数种类: 数学运算 内容说明: 本函数计算次方值。参数 base 为基底,exp 为幂数。 使用范例 <?php print(pow(2,3)); // 8 print(pow(5,4)); // 625 ?> 参考: log10() exp()

rand 取得随机数值。 语法: int rand([int min], [int max]); 返回值: 整数 函数种类: 数学运算 内容说明: 本函数用来取得随机数值。若没有指定随机数的最大及最小范围,本函数会自动的从 0 到 rand_max 中取一个随机数。若有指定 min 及 max 的参数,则从指定参数中取一个数字。例如 rand(38, 49) 则会从 38 到 49 之间取一个随机数值,unix 系统包含 49、win32 系统不包含 49 ([email protected] 10-may-1999)。值得注意的是为使随机数的乱度最大,每次在取随机数之前最好使用 srand() 以配置新的随机数种子。 参考: srand() getrandmax() mt_rand() mt_srand() mt_getrandmax()

round 四舍五入。 语法: double round(double val); 返回值: 倍精确数 函数种类: 数学运算 内容说明: 本函数用来将数字小数点后四舍五入。 使用范例 <?php $foo1 = round(3.4); $foo2 = round(3.5); $foo3 = round(3.6); echo "round(3.4): ".$foo1."<br>\n"; echo "round(3.5): ".$foo2."<br>\n"; echo "round(3.6): ".$foo3; ?>

参考: ceil() floor()

sin 正弦计算。 语法: float sin(float arg); 返回值: 浮点数 函数种类: 数学运算 内容说明: 本函数计算参数 arg 的正弦值 (sine)。 参考: cos() tan()

sqrt 开平方根。 语法: float sqrt(float arg); 返回值: 浮点数 函数种类: 数学运算 内容说明: 本函数将参数 arg 开平方根。

srand 配置随机数种子。 语法: void srand(int seed); 返回值: 无 函数种类: 数学运算 内容说明: 本函数传入参数 seed 后,配置随机数的种子。值得注意的是参数 seed 值最好也是随机出现的数字,例如利用加入时间做为变量的来源就是不错的方法,或者开发其它的硬体周边界面可取得更好的随机数。 使用范例 本例加入时间的因素,以执行时的百万分之一秒当随机数种子 <?php srand((double)microtime()*1000000); $randval = rand(); echo $randval; ?> 参考: rand() getrandmax() mt_srand() mt_rand() mt_getrandmax()

tan 正切计算。 语法: float tan(float arg); 返回值: 浮点数 函数种类: 数学运算 内容说明: 本函数计算参数 arg 的正切值 (tangent)。 参考: sin() cos()

时间: 2024-12-17 19:05:04

Php GMP的相关文章

configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.

使用yum update gcc只能更新到gcc-4.4.7-11.el6.x86_64 下载了更高版本的GCC http://mirror.hust.edu.cn/gnu/gcc/gcc-4.8.4/ 配置时出现以下错误: 解决办法: 下载安装缺少的依赖项 下载地址: http://www.multiprecision.org/index.php?prog=mpc&page=download 可选的直接下载地址: https://gmplib.org/download/gmp/gmp-6.0.

configure: error: GMP version &gt;= 4.3.2 required

配置mpc-1.0.1时提示此错误 查找了很多镜像站点,现在能找到的最低版本就是:mpc-1.0.1 wget ftp://gnu.mirror.iweb.com/mpc/mpc-1.0.1.tar.gz 遇到这个问题就去下载:gmp-4.3.2或者是更高的版本 wget ftp://gnu.mirror.iweb.com/gmp/gmp-4.3.2.tar.gz 注意: 我刚开始下载的最新版本:gmp-6.0.0a,但是在安装mpfr的时候有错误,安装不了,后来回忆好像也可能是我操作有错误.

在64位Linux上安装32位gmp大数库

前期准备: 如果没有安装32位gcc和g++环境的话,可能会导致安装失败,此时请参考上一篇博文 http://www.cnblogs.com/weir007/p/5977759.html,根据系统版本配置编译环境. 下载gmp源码(如gmp-6.1.0.tar.bz2),解压,cd进入gmp解压后文件夹: 依次运行指令: ABI=32 CFLAGS=-m32 ./configure make check 2>&1 | tee gmp-check-log (由于平台问题,需要仔细检测,确保所有

gcc configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0

从svn checkout svn://gcc.gnu.org/svn/gcc/trunk拿了GCC的最新代码,打算编译了学东西习学习C++ 11的东西,结果在configure的时候出现例如以下问题: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+ http://www.multiprecision.org/mpc 下载mpc-0.9.tar.gz ftp://ftp.gnu.org/gnu/gmp/gmp-5.0.1.ta

win 7平台下 gmp的库编译过程

首先需要安装mingw  下载链接:http://mingw.org/ 1.下载gmp-6.0.0a.tar.bz2到到gmp_downlaod     下载链接:https://gmplib.org/ 2.打开msys.bat cd d: //进入d: cd gmp_downlaod//进入gmp_downlaod 3.用下行命令解压文件gmp-6.0.0a.tar.bz2 tar -xjvf file.tar.bz2   //解压 tar.bz2 4.在D盘新建gmp_build 将解压文件

GMP

GMP是GNU MP Bignum Library大数运算库的简称.其原理是用字符串表示大数. 1. 安装GMP大数运算库 ./configure make -j 检查编译 make check 安装 make install 2. 使用实例 /*! * Email: @gmail.com * Auth: * Date: 2019-12-8 * File: gmpTest.c * Class: %{Cpp:License:ClassName} (if applicable) * Brief: *

一个开源的高精度运算库-GMP

https://gmplib.org/ 全称是GNU Multiple Precision Arithmetic Library,即GNU高精度算术运算库,官方网站是:http://gmplib.org/ 它的功能非常强大,接口很简单,文档详尽,有C风格的接口也有C++的精心封装后的接口,其中不但有普通的整数.实数.浮点数的高精度运算,还有随机数生成,尤其是提供了非常完备的数论中的运算接口,比如Miller-Rabin素数测试算法,大素数生成,欧几里德算法,求域中元素的逆,Jacobi符号,le

LNMP编译安装遇到问题归总

LNMP编译安装遇到问题归总 1.错误:configure: error: freetype-config not found. 解决:yum install freetype-devel 2.错误:configure: error: libevent >= 1.4.11 could not be found  解决:yum -y install libevent libevent-devel 3.错误:configure: error: Please reinstall the mysql d

CGAL4.10 编译

环境:Window10,VS2013 ,QT5.6.2 64bit 1.按装boost_1_64_0 boost_1_64_0-msvc-12.0-64.exe 2.zlib-1.2.11.tar.gz编译很容易 3.QGLVIewer编译2.6 4.CGAL-4.10-Setup.exe安装包中自带了gmp mpfr