Модульная мультипликативная обратная функция в Matlab

У меня проблема с вычислением модульной мультипликативной инверсии. Например, у меня есть целые числа A = 151 и M = 541. 151 по модулю 541. Обратный мод от 151 до 541 равен 43, как рассчитать модульный мультипликативный обратный в Matlab?


person user3752566    schedule 11.09.2016    source источник


Ответы (1)


Это можно сделать с помощью gcd и < href="http://www.mathworks.com/help/matlab/ref/mod.html" rel="nofollow">mod работает следующим образом:

A = 151;   M = 541;

[G, C, ~] = gcd(A,M);
if G==1  % The inverse of a(mod b) exists only if gcd(a,b)=1
    ModMultInv = mod(C,M)
else disp('Modular multiplicative inverse does not exist for these values')
end

Вывод:-

ModMultInv =
    43
person Sardar Usama    schedule 11.09.2016