码迷,mamicode.com
首页 > 其他好文 > 详细

逆元模板

时间:2016-07-29 21:22:58      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:

 1 /****************************************
 2         A/B(hdu 1576)
 3     求逆元模板(求(1/b)%p的值,p位素数)
 4     
 5     令(1/b)%p=x (x为结果)
 6     1/b=x+k*p (k未知)
 7     1=x*b+k*p*b (左右同时模p)
 8     1=x*b%p (1%p=1;k*p*b%p=0)
 9     1+y*p=x*b
10     1=x*b-y*p;
11     用扩展欧几里得就可求出x的值了
12 
13 *****************************************/
14 
15 #include<iostream>
16 using namespace std;
17 int p=9973;
18 
19 ///扩展欧几里得算法模板
20 int extendGcd(int a,int b,int &x,int &y)
21 {
22     if (b==0)
23     {
24         x=1;
25         y=0;
26         return a;
27     }
28     int d= extendGcd(b,a%b,y,x);
29     y-=a/b*x;
30     return d;
31 }
32 
33 ///逆元模板
34 int mod_reverse(int b,int p)
35 {
36     int x,y;
37     int d = extendGcd(b,p,x,y);
38     return x;
39 }

 

逆元模板

标签:

原文地址:http://www.cnblogs.com/pblr/p/5719618.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!