逆元的三種解法

2021-08-08 08:11:24 字數 550 閱讀 6813

逆元:

當求解公式:(a/b)%m 時,由於b>a時,a/b=0,所以需變除法為乘法:

設c是b的逆元,則有b*c≡1(mod m);

則(a/b)%m = (a/b)1%m = (a/b)bc%m = ac(mod m);

即a/b的模等於a*b的逆元的模;

1.費馬小定理

在是素數的情況下,對任意整數都有。

如果無法被整除,則有。

可以在為素數的情況下求出乙個數的逆元,,即為逆元。

比如求c(n,m) = n! /(m!(n-m)!) mod 10^9+7

由於除數可能大於被除數,所有需要將除法轉換成乘法, 採用逆元的方式。

由於模數為素數, 可以用費馬小定理。

n!(m!*(n-m!))^ (10^9+7 - 2)

也就是將x/y mod m 轉換成了 x * y ^ (m -2 ) mod m

2.擴充套件歐幾里得

3.通用法

#a

b\frac

ba​mod m = a mod (b*mod) /b

LetCode PlusOne的三種解法

原題目 given a number represented as an array of digits,plus one to the number.題目的意思是乙個用陣列表示的數字,在加一後仍然用這個陣列表示,加一後位數可能會增加,故最好用vector表示.class plusone priva...

回文數字的三種解法

要求 在不使用額外空間的前提下,判斷乙個數字是否是回文數字,例如12321是回文,1234521不是回文 回文數字的最大特徵就是最後乙個數字和第乙個數字相等,由此可以得出兩個特徵 1 回文數字反轉之後,跟反轉之前的值相等 2 回文數字首尾是對稱的 基於上述兩個特徵,可以衍生下面三個演算法 解法一 將...

子集問題的三種解法

1.按目標向量列舉 列舉目標向量每個分量上的可取值 1 全子集 def dfs x,t,s,start print x t for i in xrange start,len s x t s i dfs x,t 1,s,i 1 2 特定大小子集 def dfs x,t,s,start if t le...