PHP - gmp 函数


什么是 GMP?

GMP 代表 GNU 多精度算术库 (GMP)。

PHP 库 GMP ,允许对有符号整数、有理数和浮点数进行数学运算。GMP 具有丰富的函数集合,有助于对大数执行复杂的数学运算。据说 GMP 在计算非常大的数字的最终结果方面速度更快。

GMP 在密码学、互联网安全等应用程序以及处理算术运算的软件中非常有用。

GMP 安装

GMP 模块默认添加到 PHP 中。您可以通过删除 (;);extension=gmp 添加到 php.ini 的扩展开头。之后,重新启动 apache 并确认更改是否反映出来。将下面的代码另存为 .php 并在浏览器中执行相同的代码。


<?php 
  phpinfo(); 
?>

您应该会在浏览器中看到 GMP 已启用,如下所示 -

Php GMP

GMP 函数

下表列出 GMP 相关的所有函数。

函数 描述 版本
gmp_abs() 返回绝对值 5.0.0
gmp_add() 返回两个数字的和 5.0.0
gmp_and() 返回两个数字的按位 AND 比较 5.0.0
gmp_binomial() 计算二项式系数 7.3.0
gmp_clrbit() 清除位 5.0.0
gmp_cmp() 比较两个 GMP 编号 5.0.0
gmp_com() 计算 1 的补码 5.0.0
gmp_div_q() 将给定的数字相除 5.0.0
gmp_div_qr() 将给定的数字除以并返回商和余数 5.0.0
gmp_div_r() 将给定的数字相除并返回余数 5.0.0
gmp_div() 将给定的数字相除 5.0.0
gmp_divexact() 给出给定数字的精确除法 5.0.0
gmp_export() 导出二进制字符串 5.6.1
gmp_fact() 计算给定数的阶乘 5.0.0
gmp_gcd() 计算给定数字的 GCD 5.0.0
gmp_gcdext() 计算给定数字的 GCD 和乘数 5.0.0
gmp_hamdist() 计算两个给定数字之间的汉明距离 5.0.0
gmp_import() 从二进制字符串导入 5.6.1
gmp_init() 创建 GMP 编号 5.0.0
gmp_intval() 将 GMP 编号转换为整数 5.0.0
gmp_invert() 返回给定 GMP 编号的模逆函数 5.0.0
gmp_jacobi() 计算 jacobi 符号 5.0.0
gmp_kronecker() 计算 Kronecker 符号 7.3.0
gmp_lcm() 计算给定 GMP 编号的 LCM 7.3.0
gmp_legendre() 计算勒让德符号 5.0.0
gmp_mod() 返回模数 5.0.0
gmp_mul() 乘以 GMP 编号 5.0.0
gmp_neg() 返回给定数字的负值 5.0.0
gmp_​nextprime() 帮助找到下一个素数 5.2.0
gmp_or() 计算给定数字的按位 OR 5.0.0
gmp_​perfect_​power() 检查 GMP 值是否为完美功效 7.3.0
gmp_perfect_square() 检查 GMP 值是否为正方形 5.0.0
gmp_popcount() 计算人口计数 5.0.0
gmp_pow() 返回给定数字 raise 到 次方 的结果 5.0.0
gmp_powm() 返回新数字,其中给定数字与 modulo 一起提高到 ver 5.0.0
gmp_prob_prime() 检查 GMP 号是否为质数 5.0.0
gmp_random_bits() 返回随机数 5.6.3
gmp_random_range() 返回给定的最小数字和最大数字之间的随机数 5.6.3
gmp_random_seed() 设置种子以生成 randon 数 7.0.0
gmp_random() 返回随机数。 5.0.0
gmp_root() 返回根的整数值 5.6.0
gmp_rootrem() 返回整数值和第 n 个根的余数 5.6.0
gmp_scan0() 扫描给定数字中的 0 5.0.0
gmp_scan1() 扫描给定数字中的 1 5.0.0
gmp_setbit() 设置给定 GMP 编号的位索引 5.0.0
gmp_sign() 返回给定数字的符号 5.0.0
gmp_sqrt() 计算平方根 5.0.0
gmp_sqrtrem() 计算带余数的平方根 5.0.0
gmp_strval() 将给定的 GMP 编号转换为字符串 5.0.0
gmp_sub() 返回两个给定数字之间的差 5.0.0
gmp_testbit() 测试是否为给定索引设置了位 5.3.0
gmp_xor() 计算给定数字的按位 XOR 5.0.0