簡單數論複習

模板有標記。


P5514

\[a+b\ge a\oplus b \]

CF1322B

按位考慮, 兩個數的和的第 k 位的取值只與這兩個數的低位有關, 所以在考慮從低到高第 k 位(從 0 開始)的時候, 把所有數對 \(2^{k+1}\) 取模。

對於兩個取模後的數, 如果要在第 k 位爲 1, 和必須在 \([2^k,2^{k+1}-1]\)\([2^{k+1}+2^k, 2^{k+2}-2]\) 中。

雙指針計算即可。

記錄

P5535

伯特蘭-切比雪夫定理

若整數 n > 3, 則至少存在一個質數 p 滿足 \(n<p<2n-2\)

另一個稍弱說法是, 若整數 n > 1, 存在一個質數 p 滿足 \(n<p<2n\)

對於本題,若 k+1 爲質數, 那麼第一天不是 k+1 倍數的都將知道, 那麼如果 (k+1)*2 > n + 1, 只需一天所有數就都知道了;如果 2~n+1 中有 k+1 的倍數, 那麼只需兩天, 這是因爲相鄰數的 gcd 爲 1。

若 k+1 不是質數,不會證。

P1072

由於 x 必然爲 \(b_1\) 的約數, 所以 x 可能擁有的質因子集合找到了。

然後, 題目的兩個約束可以限定質因子的冪次的範圍。

然後直接掃過去就行了,可以過。

當然,也可以直接 dfs 求出 \(b_1\) 所有的約數然後一個一個判斷。

記錄

P2152

高精度!不寫了!

P2158

顯然同斜率的只有離 C 君最近的纔可以被看到。

那麼答案就是 \(3+2*\sum\limits_{i=2}^{N-1}\varphi(i)\), 記得特判 n=1。

記錄

P2398

\[\sum_{i=1}^n\sum_{j=1}^n \gcd(i,j)\\ \sum_{i=1}^n\sum_{j=1}^n \sum_{d\mid \gcd(i,j)} g(d)\\ \sum_{d=1}^n g(d) \lfloor\frac nd\rfloor^2 \]

關於這個 \(g\)\(id = 1*g\), 那麼顯然這個 g 是 \(\varphi\)

記錄

要記住 \(\varphi(1)=1\)\(\mu(1) = 1\) !!!

P2568

首先枚舉 p, 問題變成 \(1\le x,y\le \lfloor n/p\rfloor\) 中互質的 x,y 對數, 可以直接用 \(\varphi\) 搞, 這個是 \(1+2\cdot\sum\limits_{i=2}^{\lfloor n/p\rfloor}\varphi(i)\)

記錄

P4139【擴展歐拉定理】

由於 \(2^{2^{2^{\cdots}}}\) 太大,可以直接用擴展歐拉定理。

擴展歐拉定理:

\[\begin{cases} a^b \equiv a^{b\mod \varphi(p)+\varphi(p)}\mod p \quad b\ge \varphi(p)\\ a^b \equiv a^{b\mod \varphi(p)} \mod p\quad b<\varphi(p) \end{cases} \]

直覺上遞歸不會太多次, 直接在過程中暴力計算 \(\varphi\)

記錄

P4549

裴蜀定理可以推廣到多個數。

P2613

歐拉定理求逆元的代碼測試題。

P3811【模數爲質數時預處理逆元】

當 mod 爲質數時,可用:

inv[1] = 1;
for (int i = 2; i < mod; ++ i)
	inv[i] = (mod - mod / i) * inv[mod % i] % mod;

這樣推導:

\[p = ki+r\\ ki + r \equiv 0\mod p\\ r\equiv -ki\mod p\\ i^{-1}\equiv -kr^{-1} \mod p \]

P5431【預處理一堆逆元】

求前綴乘積, 然後求全乘起來的逆元, 然後這個可以用來求前綴乘積的逆元。

然後前綴乘積的逆元和前綴乘積可以組合成逆元。

總複雜度 \(O(n+\log w)\)

P3951【小凱的疑惑/同餘最短路】

著名的小凱的疑惑。

介紹看到的用同餘最短路理解的方法。

首先關於同餘最短路:

lg2371

記錄

\(a<b\), 模擬一下同餘最短路的過程:

\(0\to b\mod a \to 2b \mod a\to \cdots\to (a-1)b\mod a\to 0\)

對於膜 a 的等價類, 都有一個最小的可以被表示出來的數, 把這個數減去 a 就是最大的不可以被表示出來的數(僅限當前等價類)。

觀察上面那個最短路的過程, 可以發現每個點被遍歷到的時候都是走的最短路, 所以本題的答案顯然就是 \((a-1)b-a\) 也就是傳說中的 \(ab-a-b\)

P1082

基本的 exgcd

記錄

P1516【exgcd】

\[x+km\equiv y+kn \mod L\\ x+km = y+kn +qL\\ (m-n)k-qL = y-x \]

基礎練習題

記錄

P3846【BSGS】

也就是離散對數, 直接分塊搞。

記錄

P6091【原根】

求所有原根, 需要先求最小原根, 然後對於與模數的 φ 互質的數, 將它們作爲最小原根的次數, 可以得到所有原根。

記錄

P5491【二次剩餘】

rqy的介紹

抄一下。

以下 p 都指奇素數。

\(a\)\(\mod p\) 意義下的二次剩餘(感性記憶就是 “可開方的”), 如果存在 \(b\in\mathbb F_p\) 使得 \(b^2 = a\)

性質:

  1. \(1,...,p-1\) 中恰有一半二次剩餘。

    設 g 是 \(\mathbb F_p\) 的原根 ,那麼二次剩餘恰爲 \(g^0,g^2,g^4,\dots,g^{p-3}\)

    稍微解釋一下,這是因爲 \(\mathbb F_p\) 中的所有數都可以用 g 的冪次表示, 而由於 g 是最小原根,所以 g 不可開方。

  2. xy 是二次剩餘當且僅當 x,y 都是或都不是二次剩餘。

    結合上面的比較顯然。

  3. \((\frac ap)\) (Legendre symble) 爲:

    \[\]

    \begin{cases}
    0\quad ;;;a\equiv 0\
    1\quad ;;;a 是二次剩餘\
    -1\quad a 不是二次剩餘
    \end{cases}

    \[\]

    如果 \(a=g^u\), 那麼 \(a^{(p-1)/2} = g^{u(p-1)/2}\), u 爲偶數的時候, 顯然這個式子等於 1, 反之, 等於 -1。這是因爲 \(g^{(p-1)/2}\equiv -1\)。(猜的)

Cipolla 算法

現在的問題是, 已知 n 是二次剩餘, 如何求出一個 \(x\in\mathbb F_p\) 使得 \(x^2 = n\)

首先找到一個 \(a\in \mathbb F_p\) 使得 \(a^2-n\) 不是二次剩餘。

可以隨機 a, 可以證明滿足條件的 \(a\)\(\frac{p-1}2\) 個, 所以期望 \(\frac{2p}{p-1}\approx 2\) 次就可以找到一個。(暫時不會證)

接下來以 \(a^2-n\) 作爲類似複數域的虛部 \(i^2\) 的東西造一個類似複數域的東西,考慮擴域 \(\mathbb F_p[\sqrt{a^2-n}]\), 其由所有形如 \(u+v\sqrt{a^2-n}\) 的數組成,其中 \(u,v\in\mathbb F_p\)。記 \(\alpha = \sqrt{a^2-n}\), 那麼域中的數即爲 \(u+v\alpha\)

在這個域中,有一些性質:

  1. \((x+y)^p = x^p+y^p\)(可用二項式定理展開後證明, 實際上,任何每個元素的 p 倍都是 0 的域中, 這個性質都成立)
  2. \(\alpha^p = -\alpha\)。因爲 \(\alpha^p = (a^2-n)^{(p-1)/2}\alpha = -\alpha\)

現在令 \(x = (a+\alpha)^{(p+1)/2}\)

那麼:

\[x^2 = (a+\alpha)^{p+1}\\ = (a+\alpha)^p(a+\alpha)\\ = (a-\alpha)(a+\alpha)\\ = a^2-\alpha^2 = n \]

於是現在在 \(\mathbb F_p[\sqrt{a^2-n}]\) 中求得了 \(x^2=n\) 的一個解 \(x\)。還需要說明 \(x\) 一定屬於 \(\mathbb F_p\)

這個等價於證 \(x\) 的虛部爲 0, 反證法即可。

記錄

P2485

記錄

P3306

細節太多先咕着。

P4884

\[(10^N-1)/9 \equiv K \mod m \]

記錄

分配律的大膜數乘法比較靠譜, 那個用 double 的比較看不懂。

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