1. 程式人生 > >對於一些小的數學的方法的一些記錄

對於一些小的數學的方法的一些記錄

這裡只是一些做題時用到的數學小技巧

  • xmx(modp)pPx^m\equiv x(mod\ p)p\in\mathbb{P},且x[0,p1]x\in[0,p-1]的滿足條件的xx的個數。

答案為gcd(m1,p1)+1gcd(m-1,p-1)+1個。

證明

首先對於00所有情況都滿足,所以先加個11

然後對於x̸=0x\not=0,而且pp為質數,所以xx肯定有逆元,所以我們將原式變形得到xm11(modp)x^{m-1}\equiv1(mod\ p)

然後因為pp

為質數,那麼可求一個它的原根,記為gg,我們根據原根的定義可知,當gkw(modp),k[1,p1]g^k\equiv w(mod\ p),k\in[1,p-1],只有k=p1k=p-1w=1w=1,對於其他任何的kkww都不一樣,所以我們可以將原式中的xx,轉換為gyg^y,也就是xgy(modp)x\equiv g^y(mod\ p)

所以原式就變成了(gy)m11(modp)(g^y)^{m-1}\equiv 1(mod\ p),我們用尤拉定理對指數進行處理。

尤拉定理:xyxymodφ(p)(modp)x^y\equiv x^{y\ mod\ \varphi(p)}(mod\ p)

所以將指數提出,原式變成y(m1)0(mod(p1))y(m-1)\equiv 0(mod\ (p-1)),然後由於m,p1m,p-1不一定互質,所以我們令k=gcd(p1,m1)k=gcd(p-1,m-1),原式可以變成ym1k0(modp1k)y\frac{m-1}{k}\equiv 0(mod\ \frac{p-1}{k})

modkp1),由於gcd(m1k,p1k)=1gcd(\frac{m-1}{k},\frac{p-1}{k})=1,所以這兩個互質,那麼同餘為00只有yyp1k\frac{p-1}{k}的倍數,那麼由於y[1,p1]y\in[1,p-1]那麼yy只有kk種選法,根據原根的定義,那麼同理xx也有kk種,所以算上x=0x=0答案就為gcd(p1,m1)+1gcd(p-1,m-1)+1

  • xmx(modn)xmx(modpi)x^m\equiv x(mod\ n)\Leftrightarrow x^m\equiv x(mod\ p_i),其中n=pin=\prod p_i,且pip_i為質數並都不相同。

證明

這個相當於逆中國剩餘定理,對於原式,我們可以寫成xmk1n=xk2nx^m-k_1n=x-k_2n,那麼將nn展開可得xmk1(pi)=xk2(pi)x^m-k_1(\prod p_i)=x-k_2(\prod p_i)

然後我們對於每一個pjp_j,可以寫出一個式子: xmk1(pi)xk2(pi)(modpj)x^m-k_1(\prod p_i)\equiv x-k_2(\prod p_i)(mod\ p_j) 也就等價於xmx(modpj)x^m\equiv x(mod\ p_j)(因為減去的部分給模掉了)

加入有ccpip_i,那麼我們可以的到cc個同餘式,將其分別解出,然後中國剩餘定理合併一下,就可以得到原式的答案,所以當這些式子分別滿足時,才能滿足原式。

而當x[1,n]x\in[1,n]時,令最終答案為ansans,假設這cc個同餘式的每一個有cic_ixx滿足,由於在範圍內最多隻會有一個xx滿足ansans,所以在每個同餘式中選出一個,那麼最後就會有ci\prod c_ixx滿足原式,所以ansans的個數就為ci\prod c_i

  • 對於nn個點的完全圖的生成樹有nn2n^{n-2}個,有根生成樹為nn1n^{n-1}個。

證明

用矩陣樹或者prufer序列定理等證明就好啦我才不會告訴你我並不會證明╭(╯^╰)╮

  • 最大公約數的更相減損術

內容:gcd(a,b)=gcd(a,ba)(ab)gcd(a,b)=gcd(a,b-a)(a\leq b)

可用於差分求區間gcdgcd詢問修改。

其它應用:高精gcdgcd的簡便寫法

  • aa偶數,bb奇數:gcd(a,b)=gcd(a2,b)gcd(a,b)=gcd(\frac{a}{2},b)
  • aa奇數,bb偶數:gcd(a,b)=gcd(a,b2)gcd(a,b)=gcd(a,\frac{b}{2})
  • aa奇數,bb奇數(bab\leq a):gcd(a,b)=gcd(ab,b)gcd(a,b)=gcd(a-b,b)
  • aa偶數,b