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. The formatter threw an exception while trying to deserialize the message in WCF

    有一个WCF应用, 主要功能是存储doc, txt等类型文件到database,当文件的大小在16kb之内,调用WCF service能正常工作:但如果文件大小超出16KB之外, 它将抛出这样一个错误 ...

  2. SDUT2484 算术表达式的转换(表达式树)

    题目链接. 分析: 转换成表达式树,然后先序.中序.后序遍历. AC代码如下: #include <stdio.h> #include <string.h> #define m ...

  3. 【转】android 4.3 BLE onCharacteristicWrite没有回调

    原文网址:http://bbs.csdn.net/topics/390882717?page=1 问题1.我在自己程序有开一个Timer定时去readCharacteristic, 每次read可以成 ...

  4. JS线程模型&Web Worker

    js线程模型 客户端javascript是单线程,浏览器无法同时运行两个事件处理程序 设计为单线程的理论是,客户端的javascript函数必须不能运行太长时间,否则会导致web浏览器无法对用户输入做 ...

  5. Tomcat启动时报错:java.net.BindException: Permission denied <null>:80 【转载】

    本文转载自: http://blog.sina.com.cn/s/blog_4550f3ca0101g37l.html   问题起因:做负载均衡时需要将Web工程与Wap工程同时部署在一台Suse服务 ...

  6. Java学习日记-10 集合

    集合(Collection) 1. 什么是集合? 集合是一组对象组成的一个整体,又称为容器,集合类属于java.util包.集合不同于数组的地方在于,一是它的容量是可变的,二是集合中只能存储对象,不能 ...

  7. Java学习路线图·影响一代又一代程序员的经典书籍!(转)

    转自:http://www.douban.com/group/topic/50353428/ 基础篇 ·Java核心技术 卷1 基础知识(原书第9版)最新版·中文版 第13届Jolt生产效率大奖获奖图 ...

  8. js创建及操作数组

    一:创建数组 1:使用Array构造函数(new可以省略): var colors = new Array();创建length值为20的的数组: var colors = new Array(20) ...

  9. C++ —— 库函数的 语法解析

    1.__declspec 用法总结 链接:http://blog.chinaunix.net/uid-24517893-id-2749061.html 详解2:http://www.01yun.com ...

  10. atol字符串转换函数应用实例

    原型:long atol(const char *nptr); 相关函数 atoi,atol,strtod,strtol,strtoul 头文件:stdlib.h 功能:将字符串转换成整型数 说明:参 ...