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 數字作為參數傳遞時,計算逆模的程序。
<?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."\n";
// calculates the inverse modulo of a number
$a = "10"; $b = "17";
$invMod = gmp_invert($a, $b);
echo $invMod."\n";
?>
輸出:
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."\n";
// calculates the inverse modulo of a number
$a = gmp_init(10, 10);
$b = gmp_init(17, 10);
$invMod = gmp_invert($a, $b);
echo $invMod."\n";
?>
輸出:
4 12
參考:
http://php.net/manual/en/function.gmp-invert.php
相關用法
- PHP imagecreatetruecolor()用法及代碼示例
- PHP ImagickDraw getTextAlignment()用法及代碼示例
- PHP Ds\Sequence last()用法及代碼示例
- PHP Imagick floodFillPaintImage()用法及代碼示例
- PHP geoip_continent_code_by_name()用法及代碼示例
- PHP GmagickPixel setcolor()用法及代碼示例
- PHP opendir()用法及代碼示例
- PHP cal_to_jd()用法及代碼示例
- PHP stream_get_transports()用法及代碼示例
注:本文由純淨天空篩選整理自barykrg大神的英文原創作品 PHP | gmp_invert() for inverse modulo。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。