gmp_invert()是PHP中的一个内置函数,用于查找gmp数的模逆( 多精度 :对于大的数字)在另一个GMP编号下。
null
模逆是一个数字x,因此:
a x ≡ 1 (mod b)
x的值应该在{0,1,2,…b-1}中,即在整数模b的环中。
语法:
gmp_invert ( $a, $b )
参数: 此函数接受两个GMP编号 一美元 和 b美元 如上面的语法所示。此函数查找 一美元 模下 b美元 。这些参数可以是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: 当数字字符串作为参数传递时,计算逆模的程序。
<?php // PHP program to calculate inverse modulo // strings as GMP numbers $a = "3" ; $b = "11" ; // calculates the inverse modulo of a number $invMod = gmp_invert( $a , $b ); echo $invMod . "" ; // calculates the inverse modulo of a number $a = "10" ; $b = "17" ; $invMod = gmp_invert( $a , $b ); echo $invMod . "" ; ?> |
输出:
4 12
项目2: 当GMP数作为参数传递时,计算逆模的程序。
<?php // PHP program to calculate inverse modulo // creating GMP numbers using gmp_init() $a = gmp_init(3, 10); $b = gmp_init(11, 10); // calculates the inverse modulo of a number $invMod = gmp_invert( $a , $b ); echo $invMod . "" ; // calculates the inverse modulo of a number $a = gmp_init(10, 10); $b = gmp_init(17, 10); $invMod = gmp_invert( $a , $b ); echo $invMod . "" ; ?> |
输出:
4 12
参考: http://php.net/manual/en/function.gmp-invert.php
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END