📜  PHP | gmp_invert() 用于反模

📅  最后修改于: 2022-05-13 01:56:53.109000             🧑  作者: Mango

PHP | gmp_invert() 用于反模

gmp_invert() 是PHP中的一个内置函数,用于在另一个 GMP 数下查找 GMP 数(GNU 多精度:对于大数)的模逆。

模逆是一个数 x 使得:

a x ≡ 1 (mod b) 

x 的值应该在{0, 1, 2, ... b-1} 中,即在整数模b 的环中。

句法:

gmp_invert ( $a, $b )

参数:此函数接受两个 GMP 数字$a$b ,如上述语法所示。此函数在模$b下找到$a的倒数。这些参数可以是PHP 5.6 及更高版本中的 GMP 对象,或者我们也可以传递一个数字字符串,前提是可以将该字符串转换为数字。

返回值:此函数返回一个 GMP 数字,它是作为参数传递给它的两个数字的计算反模。如果无法找到给定两个数字的反模数,则此函数返回 FALSE。

例子:

Input:  $a = 3, $b = 11
Output: 4
Since (4*3) mod 11 = 1, 4 is modulo inverse of 3
One might think, 15 also as a valid output as "(15*3) mod 11" 
is also 1, but 15 is not in ring {0, 1, 2, ... 10}, so not 
valid.

Input:  $a = 10, $b = 17
Output: 12
Since (10*12) mod 17 = 1, 12 is modulo inverse of 3

下面的程序说明了PHP中的 gmp_invert()函数:

程序 1:当数字字符串作为 GMP 数字作为参数传递时计算反模的程序。


输出:

4
12

程序 2:当 GMP 数字作为参数传递时计算反模的程序。


输出:

4
12

参考:
http:// PHP.net/manual/en/函数.gmp-invert。 PHP