PHP - GMP 函数



什么是 GMP?

GMP 代表 GNU 多精度算术库 (GNU Multiple Precision Arithmetic Library)。

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

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

在 PHP 中安装 GMP

GMP 模块默认添加到 PHP 中。你可以通过移除 php.ini 文件扩展名部分开头处的 (;) `;extension=gmp` 来激活它。之后重启 Apache 并确认更改是否生效。将下面的代码保存为 .php 文件并在浏览器中执行。

<?php
   phpinfo();
?>

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

Php GMP

GMP 函数

下表列出了所有与 PHP GMP 函数相关的函数。其中“版本”列表示支持该函数的最早 PHP 版本。

序号 函数及描述 版本
1 gmp_abs()

返回绝对值

5.0.0
2 gmp_add()

返回两个数的和

5.0.0
3 gmp_and()

返回两个数的按位与比较结果

5.0.0
4 gmp_binomial()

计算二项式系数

7.3.0
5 gmp_clrbit()

清除位

5.0.0
6 gmp_cmp()

比较两个 GMP 数

5.0.0
7 gmp_com()

计算反码

5.0.0
8 gmp_div_q()

除以给定的数

5.0.0
9 gmp_div_qr()

除以给定的数并返回商和余数

5.0.0
10 gmp_div_r()

除以给定的数并返回余数

5.0.0
11 gmp_div()

除以给定的数

5.0.0
12 gmp_divexact()

给出给定数字的精确除法结果

5.0.0
13 gmp_export()

导出二进制字符串

5.6.1
14 gmp_fact()

计算给定数字的阶乘

5.0.0
15 gmp_gcd()

计算给定数字的最大公约数 (GCD)

5.0.0
16 gmp_gcdext()

计算给定数字的最大公约数 (GCD) 和乘数

5.0.0
17 gmp_hamdist()

计算两个给定数字之间的汉明距离

5.0.0
18 gmp_import()

从二进制字符串导入

5.6.1
19 gmp_init()

创建一个 GMP 数

5.0.0
20 gmp_intval()

将 GMP 数转换为整数

5.0.0
21 gmp_invert()

返回给定 GMP 数的模反元素

5.0.0
22 gmp_jacobi()

计算雅可比符号

5.0.0
23 gmp_kronecker()

计算克罗内克符号

7.3.0
24 gmp_lcm()

计算给定 GMP 数的最小公倍数 (LCM)

7.3.0
25 gmp_legendre()

计算勒让德符号

5.0.0
26 gmp_mod()

返回模数

5.0.0
27 gmp_mul()

乘以 GMP 数

5.0.0
28 gmp_neg()

返回给定数字的负值

5.0.0
29 gmp_nextprime()

帮助查找下一个素数

5.2.0
30 gmp_or()

计算给定数字的按位或结果

5.0.0
31 gmp_perfect_power()

检查 GMP 数是否为完全幂

7.3.0
32 gmp_perfect_square()

检查 GMP 数是否为完全平方数

5.0.0
33 gmp_popcount()

计算总体计数

5.0.0
34 gmp_pow()

返回给定数字的幂的结果

5.0.0
35 gmp_powm()

返回具有给定数字的幂以及模的新数字

5.0.0
36 gmp_prob_prime()

检查 GMP 数是否为素数

5.0.0
37 gmp_random_bits()

返回随机数

5.6.3
38 gmp_random_range()

返回给定最小值和最大值之间的随机数

5.6.3
39 gmp_random_seed()

设置种子以生成随机数

7.0.0
40 gmp_random()

返回随机数。

5.0.0
41 gmp_root()

返回根的整数值

5.6.0
42 gmp_rootrem()

返回 n 次根的整数值和余数

5.6.0
43 gmp_scan0()

扫描给定数字中的 0

5.0.0
44 gmp_scan1()

扫描给定数字中的 1

5.0.0
45 gmp_setbit()

设置给定 GMP 数字的位索引

5.0.0
46 gmp_sign()

返回给定数字的符号

5.0.0
47 gmp_sqrt()

计算平方根

5.0.0
48 gmp_sqrtrem()

计算带余数的平方根

5.0.0
49 gmp_strval()

将给定的 GMP 数转换为字符串

5.0.0
50 gmp_sub()

返回两个给定数字之间的差

5.0.0
51 gmp_testbit()

测试给定索引的位是否已设置

5.3.0
52 gmp_xor()

计算给定数字的按位异或结果

5.0.0
php_function_reference.htm
广告