正睿19暑期B班DAY7 数论

洛谷今日份:宜打chunithm(您虹了),sdvx(您暴了)

今日又是课件非常丰富份,本文仅作批注

首先要理解群,环,域的概念(这个会再提一次)

几个代数结构

群 是一个集合加上一个运算

满足封闭性结合律、有单位元、有逆元二元运算

环 定义了两种运算的非空集合,满足加法分配律和乘法结合律、分配律

幺环 有单位元的环

域 设F是一个有单位元e1(≠0)的交换环(满足乘法交换律的幺环)。如果F中每个非零元都可逆,称F是一个域。

也可以理解为能够做四则运算,对于四则运算得到的结果还在域内(封闭)的幺环

有助于理解并防止本文过长的链接

质因子分解

素性测试

  • 试除法
  • Miller-Rabin

板子等到血书要到了再补,没有就补一个自己的小菜板

质因子分解

  • 试除法,复杂度 O((sqrt n)),太慢了。
  • Pollard’s Rho,期望复杂度 O((^{4}sqrt{n} log n)),又名启发式分解。

数论

GCD & ExGCD

我相信你们已经完全会了

类欧几里得算法

解决类似于这样的问题

[solve(n, A, B, C) = sum_{i = 1}^{n} lfloor frac{Ai + B}{C} floor ]

把它移项一下之后递归,具体见课件

关于课件里有几个名词问了一下数竞玩家:

hjmmm:环是什么?

念去去:环是一个定义了两种运算的群,满足加法分配律和乘法结合律、分配律。就是说在环这个范围内,+运算和×运算都是可以进行的。环具体是什么要具体问题具体分析。如果是mod5的,那么就是0-4。

hjmmm:明白辽。。emm那群是什么

念去去:就是进行某一种运算的范围。对于不同运算规则,群是可能不相同的。比如同余运算的群一般是整数

hjmmm:明白辽。。emm什么叫模合数的环?它和模质数的有什么区别?

念去去:膜质数简单,膜质数可以用更多的定理。Lucas定理 威尔逊定理之类的。对于有的概率运算 膜合数的结果和膜质数的不一样。这个我也不太清楚了。。。

hjmmm:好的 感谢vq

中国剩余定理 CRT&ExCRT

这里放一下r爷举的ExCRT的栗子

(x = 3 (mod 12), x = 7 (mod 8))

(x = 3 (mod 4))

(x = 4k + 3 mod(lcm(12, 8)))

(k = 0 (mod 3), k = 1 (mod 2))

把k解出来之后 把两个方程合并成一个mod(lcm(p1, p2))的方程

费马小定理

p 是质数,则 (a^p ≡ a (mod p))

欧拉定理

p > 1,a, p 互质,则 (a^{ϕ(p)} ≡ 1 (mod p))

  • 缩系:和x互质的所有数的集合

扩展欧拉定理

$p > 1,n ≥ ϕ(p) 存在 a^n ≡ a^{n mod ϕ(p)+ϕ(p)} (mod p)

离散对数问题

BSGS

(A^x ≡ B (mod C))

ExBSGS

A, B, C一起除以gcd(A, C)

原根相关

循环群:指群可以由一个元素生成:(G = x, x^2, x^3 ...)

阶:满足 (x^d = 1)的最小正整数 d。记为 ord(x)。

$x^m = 1 $当且仅当 (ord(x)|m)

模素数 p 的剩余类构成一个有限域。

m 意义下与 m 互质的元素组成缩系,大小为 ϕ(m)。

原根:能生成缩系的元素,即 (x^i) 两两不同((0 ≤ i < ϕ(m)))的 x。原根不一定存在。事实上,当且仅当 (m = 2, 4, p^k,2∗p^k) 时,模 m 缩系的原根存在。p 是任意奇质数。

Fact: 设 a 的阶是 m(d|m),则 (a^d) 的阶是 (frac{m}{d})

Fact: 设 a 的阶是 mb 的阶是 n,则必存在一个数,阶是 (lcm(n, m))

Fact: n 个元素的循环群的生成元个数为 ϕ(n)。

好,相信看到这里你已经懵了

宛转表达:这个时候我们需要拉一个数竞党让他来证一遍

直接说明:咕咕咕

二次剩余

((frac{a}{p}))表示 a 是模 p 域下的二次剩余,-1 表示是二次非剩余

p.s. LeTaX打法:(frac{a}{p})

计算:((frac{a}{p}) = a^{frac{p - 1}{2}} (mod p))

二次互反律:((frac{p}{q})(frac{q}{p})=(-1)^{frac{(p-1)(q - 1)}{4}})

二次剩余计算方法:原根法 / Cipolla算法

Cippolla:

rand一个a使得(a^2 - n)是二次非剩余

(w = sqrt{a^2 - n})(x + yw)形成一个域((x + yw)是mod P域的扩域)

二次剩余解为((a + w)^{frac{p + 1}{2}})

关于证明,注:mod P下有性质 ((a + b)^P = a^P + b^P (mod P))

关于证明((a + w)^{frac{p + 1}{2}})不含(w)项,注:((a^2 - w) = frac{n}{y^2})

  • 跳跳棋

    link

    注意按照规则,一个状态只有三种转移(向里跳,中间棋子向左跳或向右跳)

    这样的话我们把第一种情况作为父亲,后两种作为儿子

    然后对于(a, b, c),如果有(b - a > c - b)

    那么(a, b, c)到父亲的距离就是(lfloor frac{b - a}{c - b} floor)

  • Power Tower

    (a_{l}^{a_{l + 1}^{...^{a_{r}}}})这个东西直接暴力就好啦

    只要下面变成1了就不用乘了

  • Chinese Leftover Ⅱ

(a_1 + (a_2 - a_1) * p_1 * inv(p_1, p_2) (mod p_1p_2))

(F(i , j) = F(i - 1, j) + (a_2 - a_1) * inv(p1, p2) mod p2 * p1)

感觉别的题ppt写的很清楚啊

数论函数

从这里开始,一定要手推!一定要手推!一定要手推!

hjmmm:陪域是什么qvq

"数论函数:定义域为正整数集,陪域为复数域的函数。"

念去去:值域是陪域的一部分,值域是定义域映射到的陪域的那部分。

hjmmm:那陪域有什么用

念去去:人家没告诉你映射,比如说从整数集映到复数集,这个“复数集”就是陪域,相当于把我们高中习惯的叫法更严谨了。

hjmmm:所以陪域只要包含值域,是什么都行咯?

念去去:最起码。。。最起码作业帮是这个意思。所以陪域这个东西在这里就有点鸡肋了。。。

两个数论函数的迪利克雷卷积:(符号为*)

[(f*g)(n)=sum_{d|n}f(d)g(frac{n}{d}) ]

满足:

交换律:f g = g f

结合律:(f g) h = f (g h)

分配律:f (g + h) = f g + f h

单位元:

f**, g 是积性函数则 f g 也是积性函数。

一些性质:

  • g = f 1,则 f = g µ

这个主要是用到(sum_{d | n} mu(d) = sum_{S subset T} (-1)^{|S|} = sum_{i = 0}^{n} binom{n}{i}(-1)^i = (1-1)^n = 0)

所以(sum_{d | n} mu(d) = [n = 1])

同时(mu * 1 = epsilon)(为了方便各位,(epsilon)的LaTeX是epsilon)

(epsilon)函数是单位元,有f ϵ = f

于是我们收获:

  • (σ_k = Id_k ∗ 1,Id_k = σ_k ∗ µ)

注:(σ_k)(n)表示n的约数的k次方之和,(Id(n))表示n的k次方

  • (Id_1 = ϕ ∗ 1,ϕ = Id_1 ∗ µ)

注:(Id_1) = {1, 2, 3, ..., k}

莫比乌斯反演和杜教筛

真的打公式快。死。了。

以后再填坑qvq

Min25筛

如果有不理解的地方可以参考:

  • 对于ppt中的Part1 Part2 分别求解了质数范围和全部范围的积性函数前缀和

  • 那个(T(n))是要求的积性函数

  • Part1中的F函数其实筛到最后,对于每一个j,只需要F(i, j)

    其中i为最小的i使得(p_i^2 > n)

    Part2中的F(i)默认忽略了第一维

  • 注意F(i, j)的第二维只有(sqrt{n})级别

    (k*sqrt{n})个数(k为常数)中,包含了1到(sqrt{n})

    所以Part1转移式中那个"(F(i - 1, p_{i - 1}))"不必担心不在范围内

  • Part1的F是从小到大转移的 Part2中的S是从大到小转移的

  • Part2答案式中S(1, n) + 1最后的加一加的是T(1)

    (积性函数T(1) = 1)

  • Part2递推式中(T(p_{j}^{e+1}))只是表示指数从2开始累计

    因为(T(p_j))已经在质数中累计过了

解释一下递推式

  • Part1

(F(i, n) = F(i - 1, n) - T(p_i)(F(i - 1, lfloor frac{n}{p_i} floor) - F(i - 1, p_{i - 1})))

(F(i - 1, n))很显然是最小质因子大于等于(p_i)的数或者质数

要去掉最小质因子恰好是(p_i)的数

所以先取出(p_i)

(F(i - 1, lfloor frac{n}{p_i} floor))表示不大于(lfloor frac{n}{p_i} floor)最小质因子大于等于(p_i)的数 或者 质数

前者乘上(p_i)之后 最小质因子必然是(p_i)

为了除掉后者 还要减去$ F(i - 1, p_{i - 1})$

小于等于(p_{i -1})最小质因子还是(p_{i- 1})的合数并不存在

所以只去掉了被计算的质数

  • Part2

$T(p_j^e) * S(j + 1, lfloor frac{n}{p_j^e} floor) + T(p_j^{e + 1}) $

前半段先取出(p_i) 计算最小质因子为(p_j)的合数

后半段计算(p_j)的多次幂

模板题链接

【模板】裴蜀定理

【模板】exBSGS

【模板】杜教筛

【模板】Pollard-Rho算法

【模板】乘法逆元2

【模板】线性筛素数

【模板】线性筛素数

【模板】Min_25筛

【模板】类欧几里得算法

原文地址:https://www.cnblogs.com/hjmmm/p/11296102.html