Рубрики

PHP | gmp_invert () для обратного по модулю

Gmp_invert () — это встроенная функция в PHP, которая используется для поиска модульной инверсии номера GMP ( GNU Multiple Precision : для больших чисел) под другим номером GMP.

Модульное обратное число x такое, что:

a x ≡ 1 (mod b) 

Значение x должно быть в {0, 1, 2,… b-1}, т. Е. В кольце целых чисел по модулю b.

Синтаксис:

gmp_invert ( $a, $b )

Параметры: Эта функция принимает два номера GMP $ a и $ b, как показано в приведенном выше синтаксисе. Эта функция находит инверсию $ a по модулю $ b . Эти параметры могут быть объектом GMP в версии PHP 5.6 и выше, или нам также разрешается передавать числовую строку при условии, что можно преобразовать эту строку в число.

Возвращаемое значение: эта функция возвращает номер 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

Ниже программы иллюстрируют функцию gmp_invert () в PHP:

Программа 1: Программа для вычисления обратного модуля по модулю, когда числовые строки в качестве чисел GMP передаются в качестве аргументов.

<?php
// PHP программа для вычисления обратного модуля

  
// строки как номера GMP

$a = "3";

$b = "11";

  
// вычисляет обратную величину по модулю числа

$invMod = gmp_invert($a, $b);

echo $invMod."\n";

  
// вычисляет обратную величину по модулю числа

$a = "10"; $b = "17";

$invMod = gmp_invert($a, $b);

echo $invMod."\n";

  
?>

Выход:

4
12

Программа 2: Программа для вычисления обратного модуля, когда числа GMP передаются в качестве аргументов.

<?php
// PHP программа для вычисления обратного модуля

  
// создание номеров GMP с использованием gmp_init ()

$a = gmp_init(3, 10);

$b = gmp_init(11, 10);

  
// вычисляет обратную величину по модулю числа

$invMod = gmp_invert($a, $b);

echo $invMod."\n";

  
// вычисляет обратную величину по модулю числа

$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 | gmp_invert () для обратного по модулю

0.00 (0%) 0 votes