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 <= (值) ≶= 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的更多相关文章
- 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 ...
- 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的时候出现例如以下问题 ...
- GMP大法教你重新做人(从入门到实战)
一.引言 GMP(The GNU Multiple Precision Arithmetic Library)又叫GNU多精度算术库,是一个提供了很多操作高精度的大整数,浮点数的运算的算术库,几乎没有 ...
- 深入Golang调度器之GMP模型
前言 随着服务器硬件迭代升级,配置也越来越高.为充分利用服务器资源,并发编程也变的越来越重要.在开始之前,需要了解一下并发(concurrency)和并行(parallesim)的区别. 并发: 逻 ...
- Build GMP on 64bit Windows
1.MSYS2 环境搭建 1.1.安装 msys2 的主页地址: http://www.msys2.org/ 下载32位或64位,我这里 下载了64位 msys2-x86_64-20161025.ex ...
- 大数高精度计算库gmp简介
1.编译安装,我用的ubuntu18.04 $sudo apt-get install m4 //默认没安装,gmp用这个 $tar -jvxf gmp-.tar.bz2 //解压 $cd gmp- ...
- 记录一次在centos下使用gmp的悲伤
有个作业是需要在linux下做的,并且需要用到gmp这个 library : 我使用的是虚拟机centos7.很久没碰过linux了,忘得差不多了,一点点百度出来的 1. 首先检查是否已存在gmp库 ...
- 高精度运算库gmp
网址:www.gmplib.org 我下载的是 6.1.2版本:https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2 执行操作如下: 1. tar -jv ...
- 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 解决 ...
随机推荐
- 转:更改 centos yum 源
centos下可以通过yum很方便快捷的安装所需的软件和库,如果yum的源不好,安装速度会非常慢,centos默认官方源似乎都是国外的,所以速度无法保证,我一直使用163的源,感觉速度不错.下面就说说 ...
- ISO14443协议中,卡片对RATS,PPS,IBLOCK的处理约定
这几天总是看到有人因为这几条规则没处理好,结果检测时通不过,其实看看最新版的ISO14443协议就明白了. 协议中明确要求几条: 1.在激活状态后,如果收到一个无错的RATS命令后,卡片返回atr,此 ...
- C51指针的使用
指针就是指变量或数据所在的存储区地址.如一个字符型的变量 STR 存放在内存单元DATA 区的 51H 这个地址中,那么 DATA 区的 51H 地址就是变量 STR 的指针.在 C 语言中指针是一个 ...
- sql优化(oracle)
系统优化中很重要的方面是SQL语句的优化,对于海量数据,优质的SQL能够有效的提高系统的可用性. 总结的有点罗嗦,列个简单的目录啦~ 目录 第一部分知识准备 ...
- HDOJ(HDU) 2088 Box of Bricks(平均值)
Problem Description Little Bob likes playing with his box of bricks. He puts the bricks one upon ano ...
- ObsoleteAttribute 可适用于除程序集、模块、参数或返回值以外的所有程序元素。 将元素标记为过时可以通知用户:该元素在产品的未来版本中将被移除。
官方文档:https://msdn.microsoft.com/zh-cn/library/system.obsoleteattribute(v=vs.110).aspx 备注 ObsoleteAtt ...
- HDU 4391 - Paint The Wall - 分块哈希入门
题目链接 : http://acm.hdu.edu.cn/showproblem.php?pid=4391 题意 : 给一段区间, 有两种操作 1 : 给 x 到 y 的区间染色为 z 2 : 查询 ...
- @Resource 和 @Autowired注解的异同
@Resource 和 @Autowired注解的异同 @Autowired 默认按类型装配,默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false 例 ...
- get client machine name
System.Net.Dns.GetHostEntry(Request.ServerVariables["remote_addr"]).HostName;
- Java发送邮件的简单实现
使用Oracle官方的JavaMail进行实现,JavaMail下载地址:https://java.net/projects/javamail/pages/Home 将下载好的jar包加入到工程路径中 ...