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 (zkimmel@earthlink.net 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()

Php GMP的更多相关文章

  1. GCC 源码编译 mpc mprf gmp 不用make(否则会有lib/libgmp.so: could not read symbols: File in wrong format等错误)

    错误信息: lib/libgmp.so: could not read symbols: File in wrong formatcollect2: error: ld returned 1 exit ...

  2. 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的时候出现例如以下问题 ...

  3. GMP大法教你重新做人(从入门到实战)

    一.引言 GMP(The GNU Multiple Precision Arithmetic Library)又叫GNU多精度算术库,是一个提供了很多操作高精度的大整数,浮点数的运算的算术库,几乎没有 ...

  4. 深入Golang调度器之GMP模型

    前言 随着服务器硬件迭代升级,配置也越来越高.为充分利用服务器资源,并发编程也变的越来越重要.在开始之前,需要了解一下并发(concurrency)和并行(parallesim)的区别. 并发:  逻 ...

  5. Build GMP on 64bit Windows

    1.MSYS2 环境搭建 1.1.安装 msys2 的主页地址: http://www.msys2.org/ 下载32位或64位,我这里 下载了64位 msys2-x86_64-20161025.ex ...

  6. 大数高精度计算库gmp简介

    1.编译安装,我用的ubuntu18.04 $sudo apt-get install m4 //默认没安装,gmp用这个 $tar -jvxf gmp-.tar.bz2 //解压 $cd gmp- ...

  7. 记录一次在centos下使用gmp的悲伤

    有个作业是需要在linux下做的,并且需要用到gmp这个 library : 我使用的是虚拟机centos7.很久没碰过linux了,忘得差不多了,一点点百度出来的 1. 首先检查是否已存在gmp库 ...

  8. 高精度运算库gmp

    网址:www.gmplib.org 我下载的是 6.1.2版本:https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2 执行操作如下: 1. tar -jv ...

  9. GCC升级问题解决:configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.,mpfr2.4.0

    如果遇到类似问题: configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.,mpfr2.4.0 解决 ...

随机推荐

  1. 转:更改 centos yum 源

    centos下可以通过yum很方便快捷的安装所需的软件和库,如果yum的源不好,安装速度会非常慢,centos默认官方源似乎都是国外的,所以速度无法保证,我一直使用163的源,感觉速度不错.下面就说说 ...

  2. ISO14443协议中,卡片对RATS,PPS,IBLOCK的处理约定

    这几天总是看到有人因为这几条规则没处理好,结果检测时通不过,其实看看最新版的ISO14443协议就明白了. 协议中明确要求几条: 1.在激活状态后,如果收到一个无错的RATS命令后,卡片返回atr,此 ...

  3. C51指针的使用

    指针就是指变量或数据所在的存储区地址.如一个字符型的变量 STR 存放在内存单元DATA 区的 51H 这个地址中,那么 DATA 区的 51H 地址就是变量 STR 的指针.在 C 语言中指针是一个 ...

  4. sql优化(oracle)

    系统优化中很重要的方面是SQL语句的优化,对于海量数据,优质的SQL能够有效的提高系统的可用性. 总结的有点罗嗦,列个简单的目录啦~ 目录 第一部分知识准备                      ...

  5. HDOJ(HDU) 2088 Box of Bricks(平均值)

    Problem Description Little Bob likes playing with his box of bricks. He puts the bricks one upon ano ...

  6. ObsoleteAttribute 可适用于除程序集、模块、参数或返回值以外的所有程序元素。 将元素标记为过时可以通知用户:该元素在产品的未来版本中将被移除。

    官方文档:https://msdn.microsoft.com/zh-cn/library/system.obsoleteattribute(v=vs.110).aspx 备注 ObsoleteAtt ...

  7. HDU 4391 - Paint The Wall - 分块哈希入门

    题目链接 : http://acm.hdu.edu.cn/showproblem.php?pid=4391 题意 : 给一段区间, 有两种操作 1 : 给 x 到 y 的区间染色为 z 2 : 查询 ...

  8. @Resource 和 @Autowired注解的异同

    @Resource 和 @Autowired注解的异同 @Autowired 默认按类型装配,默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false 例 ...

  9. get client machine name

    System.Net.Dns.GetHostEntry(Request.ServerVariables["remote_addr"]).HostName;

  10. Java发送邮件的简单实现

    使用Oracle官方的JavaMail进行实现,JavaMail下载地址:https://java.net/projects/javamail/pages/Home 将下载好的jar包加入到工程路径中 ...