1. 程式人生 > >【同餘定理+逆元】知識點講解

【同餘定理+逆元】知識點講解

【同餘的定義】:

【同餘的主要性質】:

性質證明:

【逆元】

(1)定義:

【費馬小引理求解逆元】:

程式碼實現:

long long quickpow(long long a,long long b){
	if(b<0)  return 0;
	long long ret=1;
	a%=mod;
	while(b){
		if(b & 1 ) ret = ( ret *a ) % mod
		b>>=1;
		a = (a * a)% mod;
	}
	return ret;
}
long long inv(long long a){
	return quickpow(a,mod-2);
}

【擴充套件歐幾里得演算法求逆元】:

(1)歐幾里得演算法基本介紹:

(2)擴充套件歐幾里得演算法的證明:

(3)求解逆元:

(4)程式碼實現:

int exgcd(int a,int b,int &x,int &y)
{
	if(b==0)
	{ //推理,終止條件1 
		x=1;
		y=0;
		return a;
	}
	int t=exgcd(b,a%b,x,y)
	  int t=x;
	  x=y;
	  y=t-(a/b)*y;
	  return r;  最大公約數 
}

下面再貼一種求解逆元的方法。

【遞推法求解逆元】:

程式碼實現:

LL inv[maxn];
void Prepare_inv(int n,int M){
	int[1]=1;
	for(int i=2;i<=n;i++){
		inv[i]=(long long)(M-M/i)*inv[M%i]%M 
	}
}

ps:我們會好好的!

相關推薦

定理+知識點講解

【同餘的定義】: 【同餘的主要性質】: 性質證明: 【逆元】 (1)定義: 【費馬小引理求解逆元】: 程式碼實現: long long quickpow(long long a,long long b){ if(b<0) retur

ACM暑期集訓 定理+ 大數取

表面上看這道題是問a能不能整除b,實際上還是看二者取余余數是否為0,屬於大數取餘的範圍 a的範圍達到10的200次方,用 long long都已經不可以,需要用字串,而b可以用long long 題目: F - Large Division Given two i

練習賽補題poj1426 定理有趣~

Find The Multiple Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 33882 Accepted: 14173 Special Judge Description

hpuoj 1037一個簡單的數學題定理

1037: 一個簡單的數學題 [數學] 時間限制: 1 Sec 記憶體限制: 128 MB提交: 255 解決: 40  題目描述 小明想要知道a^b的值,但是這個值會非常的大。 所以退而求其次,小明想讓你幫他求出(a^b)%c的值。 輸入 第一行為一個

同餘 前置知識 ————擴充套件歐幾里得定理 什麼是同餘 對於兩個數a,b,它們對於p取模結果相同,那麼就稱a和b在對p取模意義下同餘 公式表達a≡b(mod)p 如何求一個數的同餘 利用擴充套件歐幾里得定理 我們將該公式轉化一下 -> a%p == b%p

hdu3037--Saving Beans --lucas定理++插板法

                                              Saving Beans                         Time Limit: 6000/3000 MS (Java/Others)    Memory Limit

POJ 1995 Raising Modulo Numbers 快速冪+定理

People are different. Some secretly read magazines full of interesting girls' pictures, others create an A-bomb in their cellar, others like using Windows

定理數論

同餘定理是數論中的重要概念。給定一個正整數m,如果兩個整數a和b滿足(a-b)能夠被m整除,即(a-b)/m得到一個整數,那麼就稱整數a與b對模m同餘,記作a≡b(mod m)。 同餘符號 兩個

HDU1212 Big Number 定理

name nsis eight posit really include pos str text Big Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768

乘法簡單說說乘法的求法

tro 擴展歐幾裏得 定義 -s enter 意義 保存 bsp nbsp 乘法逆元 一、定義   若在mod p意義下,對於一個整數a,有a*b≡1(mod p),那麽這個整數d即為a的 乘法逆元,同時a也為d的乘法逆元 二、求法   (1).費馬小定理     當p為質

Codeforces 300C Beautiful Numbers 組合數+

get 導出 fine 一個數 con 是不是 mat fin lan <題目鏈接> 題目大意: 給出a和b,如果一個數每一位都是a或b,那麽我們稱這個數為good,在good的基礎上,如果這個數的每一位之和也是good,那麽這個數是excellent。求長度為

牛客小白月賽9 A 簽到

時間限制:C/C++ 1秒,其他語言2秒 空間限制:C/C++ 262144K,其他語言524288K 64bit IO Format: %lld 題目描述  你在一棟樓房下面,樓房一共有n層,第i層每秒有pi的概率會扔下一個東西並砸到你 求第一秒內你被砸到的概率 輸入描述

樹形DP+求樹上不為祖孫的集合數 洛谷P5007

題目描述 給定一棵以 1 為根的有根樹,定義樹的一個毒瘤集為一個集合,並且集合中任意兩個元素之間不存在祖先與後代關係。 定義一個毒瘤集的毒瘤指數為集合內所有元素的價值之和 要求給定樹的所有毒瘤集的毒瘤指數之和,答案對 100000007 取模。 但這個問題太難了,所以我們考慮化簡。

2016大連區域賽 現場賽 F—Detachment貪心+

Detachment Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 346    Accepted Sub

牛客練習33 C Tokitsukaze And Number ,暴力

題意:給出整數n,將n的數位重新排列,使得排列後的數字被8整除,並且儘量的大,不包含前導0.  n<=10^100. 因為1000≡0(mod 8) 所以一個數x末3位被8整除,則x被8整除.   n<=10^100 字串讀入,並且儲存每個數位的個數. 列舉最後3位數,

證明關於項鍊問題中旋轉操作的置換群的迴圈節個數、長度的證明Pólya

做POJ2154時,對於”置換的迴圈節的個數為gcd(i, n)"表示疑惑,但是看了很多blog,發現都沒有證明這個結論,於是這裡做個簡單的證明。 設一開始珠子的位置在p點,每次旋轉x格。 先證明迴圈節長度為n / gcd(x, n)。 假設這個珠子走了k次回到p點,那麼

Hdu 6071 Lazy Running最短路

Lazy Running Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others) Total Submission(s): 927    Accepted

gym/100482/problem/G Pairs

G. Pairs The pair in the land of 1000000007 is the pair of numbers a and b with the following relation: a × b = 1 (mod 1000000007)

HDU 6044 Limited Permutation(2017多校)計數 快速讀入掛 線性

max display 技術 圖片 都是 lse one truct ase 題目傳送門:http://acm.hdu.edu.cn/showproblem.php?pid=6044 題意: 對於有n個元素的全排列的合法性定義為:有n個區間,對於第i個區間[li,

組合數學+lucas定理+ BZOJ2111 [ZJOI2010]Perm 排列計數

can clas str void script space rip esc magic 2111: [ZJOI2010]Perm 排列計數 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 2118 Solved: 563