原根的性質及其求法

在很多地方都用到了原根,比如 NTT 用到了原根的性質,比如離散對數需要用到的指標也與原根有關。

然而在此之前我對原根並不是非常瞭解,所以來補一補知識盲區。

定義

ggpp 的原根,當且僅當 ggmod  pmod \;p 意義下的階爲 φ(p)\varphi(p) (這裏的 φ(p)\varphi(p) 是歐拉函數)。

p.s.g,pg,p 互質, nn 是滿足 gn1mod  mg^n\equiv 1\mod m 的最小正整數 , 稱 nnggpp 的階。

性質

根據定義,有

i,j[0,φ(p)1],ij,gi≢gjmod  p\forall i,j\in[0,\varphi(p)-1],i\neq j,g^i\not\equiv g^j\mod p

證明很顯然,可以用反證法:

ggpp 的原根,且 i,j[0,φ(p)1],ij,gigjmod  p\exist i,j\in[0,\varphi(p)-1],i\neq j,g^i\equiv g^j\mod p

那麼 gij1mod  pg^{|i-j|}\equiv 1\mod p

因爲 i,j[0,φ(p)1],iji,j\in[0,\varphi(p)-1],i\neq j

所以 0<ij<φ(p)10<|i-j|<\varphi(p)-1

由性質可知 gg 不是 pp 的原根。

求原根

做法:

還是利用原根的定義。

將歐拉函數質因數分解 φ(p)=piki\varphi(p)=\prod p_i^{k_i}

若一個數 gg 滿足 i,gφ(p)pi1mod  p\forall i,g^{\frac{\varphi(p)}{p_i}}\neq 1\mod p ,那麼他是 pp 的一個原根。

證明:

證明用到裴蜀定理。

假設存在一個 k<φ(p)k<\varphi(p) 使得 gk1(mod  p)g^k\equiv 1(mod\;p)

根據裴蜀定理,一定存在一組 a,ba,b 滿足 akbφ(p)=gcd(k,φ(p))a\cdot k-b\cdot\varphi(p)=gcd(k, \varphi(p))

所以 gkggcd(k,φ(p))+bφ(p)ggcd(k,φ(p))1(mod  p)g^k\equiv g^{gcd(k, \varphi(p))+b\cdot\varphi(p)}\equiv g^{gcd(k,\varphi(p))}\equiv 1(mod \; p)

因爲 k<φ(p)k<\varphi(p) 所以 gcd(k,φ(p))<φ(p)gcd(k,\varphi(p))<\varphi(p)

又因爲 gcd(k,φ(p))φ(p)gcd(k,\varphi(p))|\varphi(p)

所以一定存在一個 gφ(p)pi1(mod  p)g^{\frac{\varphi(p)}{p_i}}\equiv 1(mod\; p) ,通過檢驗這些數就可以知道一個數是不是原根了。

應用

1.指標

指標函數 I(x)I(x) 定義如下:

gI(x)xmod  pg^{I(x)}\equiv x\mod p

可以對比一下連續的對數:

alogax=xa^{\log_ax}=x

可以發現兩者非常相似。 I(x)I(x) 也就是離散對數。與一般意義下的對數性質也非常相似,可以在取模意義下把乘法變成加法,把乘方變成乘法。

詳情請見 [SDOI2015]序列統計

2.NTT

NTT 用原根來代替實數中使用的單位根 ω\omega

gg是質數pp的原根,再設ωn=g(p1)/n\omega_n=g^{(p-1)/n}pp滿足np1n|p-1)。

  1. ωnn1(mod  p)\omega_n^{n}\equiv 1(mod\; p)
  2. ωn0,ωn1,,ωnn1\omega_n^0,\omega_n^{1},\dots,\omega_n^{n-1}mod  pmod\; p 意義下互不相同
  3. ωnkωnk+n/2\omega_n^k\equiv -\omega_n^{k+n/2}ωnn/21(mod  p)\omega_n^{n/2}\equiv-1(mod\; p)

第 2 點保證了能夠插值,第 3 條保證了 INTT(不知道是不是這麼叫,反正就是類似 IDFT 的過程)的進行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章