欧几里得算法求逆元

来源:互联网 发布:python counter 升序 编辑:程序博客网 时间:2024/06/05 04:14

这里的逆元是啥?

例如给两个数,7,20。

因为7*3%20=1,则3就是7的逆元。一个数a与它逆元的乘积对b取余等于1。

求逆元的公式就是套一个模板,假如说我们求a关于b的逆元就是解这个方程:
a*x + b*y == 1,这个方程就可以直接求了。求出的x就是a关于b的逆元。

欧几里得算法模板:

void Ex_gcd(int a, int b, int &x, int &y){    if(b == 0)//递归出口    {        x = 1;        y = 0;        return;    }    int x1, y1;    Ex_gcd(b, a%b, x1, y1);    x = y1;    y = x1-(a/b)*y1;}

可以试着做做HDU1756

http://acm.hdu.edu.cn/showproblem.php?pid=1576


不会的话,可以看我的解题报告:Hdu 1576:A/B

0 0
原创粉丝点击