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
在评论中写代码?请使用 ide.geeksforgeeks.org,生成链接并在此处分享链接。