• 「笔记」数学乱记


    Updated on 2020.8.7
    想了想把积性函数一系列内容引用的挺多的。
    独立出去了。

    Updated on 2020.8.8
    留了两个大坑:二次剩余,类欧几里得算法。
    跑路了!


    写在前面

    黑历史 数论知识整理
    当时还觉得自己挺 nb,现在一看写的就跟收纳胶囊一样。
    但一些简单知识还是能看的,这里就不再整理了。


    扩展欧拉定理

    (p) 意义下,对于 (a^b),有如下性质。
    不必保证 ((a,p) = 1)

    [a^bequiv egin{cases}a^b&b<varphi(p)\ a^{bmodvarphi(p)+varphi(p)}&bgevarphi(p) end{cases} ]

    题目

    P5091 【模板】扩展欧拉定理
    P4139 上帝与集合的正确用法


    (apmod m) 的阶

    ((a,m) = 1),记 (x) 为最小的正整数,使得 (a^x equiv 1 pmod m),称 (x)(a) 关于模 (m) 的阶,记为 (operatorname{ord}_{m}a)

    (operatorname{ord}_{m}amid varphi(m)),反证法略证:

    (t mid varphi(m))(t) 为最小的 满足 (a^{t} equiv 1pmod m) 的正整数。
    则有:(varphi(m) = qt+r (1le r<t))
    且有 (a^m = a^{qt+r} equiv 1 pmod m) 成立。
    则: (a^{r} equiv 1pmod m)

    (r< t),与已知矛盾,故结论不成立。


    求阶方法:

    1. 预处理 (varphi (m)) 的所有因子,从大到小枚举检查。
      单次检查复杂度 (O(log varphi(m))) ,但因子的个数会比较恐怖,总复杂度并不优秀。
    2. 发现 (x) 为满足 (a^x equiv 1 pmod m)(varphi(m)) 的最小因子。
      (x) 初始值为 (varphi(m)),考虑枚举 (varphi(m)) 的所有质因子试除。
      若满足 (a^{frac{x}{p}} equiv 1),则 (x = frac{x}{p})。最后的 (x) 即为答案。
      复杂度 (O(klog varphi(m)))(k)(varphi(m)) 的质因子个数。

    原根

    ((g,m) = 1),且 (operatorname{ord}_{m} g = varphi (m)),则称 (g)(m) 的一个原根。

    (g)(m) 的一个原根 当且仅当 ({g^0,g^1,cdots g^{varphi(m)-1} pmod m}) 内元素均不同,构成了模 (m) 的简化剩余系。

    (m) 存在原根,则 (m=1,2,4,cdots p^a,2p^a) ((p) 为奇素数,(ain mathbf{N}^+)) 。


    检验原根

    (p_1,p_2,cdots ,p_k)(varphi(m)) 的所有不同的质因子。
    对于 满足 ((g,m)=1) 的正整数 (g)(g)(m) 的原根,当且仅当对任意 (1le ile k),都有 (g^{dfrac{varphi(m)}{p_i}} otequiv 1 pmod m)

    需要枚举质因子 + 快速幂,单次检验复杂度为 (O(log^2 )) 级别。

    略证:

    (g) 不是 (m) 的原根,则 (operatorname{ord}_{m}g< varphi (m))
    (operatorname{ord}_{m}g mid varphi(m)),考虑枚举 (varphi(m)) 的约数进行检验。
    显然,(left{dfrac{varphi(m)}{p_i} ight}) 中包含了 (varphi(m)) 所有约数的倍数。
    通过检验 (g^{frac{varphi(m)}{p_i}}) 则可判断 (operatorname{ord}_m g<varphi(m)) 是否成立。


    求原根:

    原根密度很大,大约是 (n^{0.25})

    1. 可从 2 开始枚举 (g),并进行检验,可找到最小的原根。
    2. 直接随机一个数并进行检验。

    复杂度均约为 (O(n^{0.25}))

    一道模板题


    原根有什么用

    NTT!虽然还不会


    指数方程

    形如下列形式的方程:

    [a^x equiv b pmod m ]

    求解方法 BSGS


    二次剩余

    对于一个数 (a),若 (a) 不是 (p) 的倍数且模 (p) 同余于某个数的平方,则称 (a) 为模 (p) 的二次剩余。
    一个不是 (p) 的倍数的数 (a),不同余于任何数的平方,称其为模 (p) 的 非二次剩余 。

    对二次剩余求解,即对常数 (a) 解下列方程:

    [x^2 equiv a pmod p ]

    可以认为是求模意义下的开方。

    咕咕咕了,详见: oi-wiki


    组合数取模

    [{nchoose m} mod p ]

    详见:组合数取模


    积性函数

    (gcd(x,y) = 1)(f(xy)=f(x)f(y)), 则(f(n))为积性函数。

    性质,举例详见:积性函数


    莫比乌斯函数

    (mu) 为莫比乌斯函数,定义为

    [mu(n) = egin{cases} 1 &n=1\0 &n ext{含有平方因子}\(-1)^k &k ext{为} n ext{的本质不同质因子个数} end{cases}]

    性质,补充性质详见:莫比乌斯函数


    狄利克雷(Dirichlet)卷积

    定义两个数论函数 (f,g) 的狄利克雷卷积为

    [large(fast g) (n) = sum_{dmid n} f(d)g(dfrac{n}{d}) ]

    建议阅读 算法学习笔记(35): 狄利克雷卷积 By: Pecco
    性质,举例详见:狄利克雷卷积


    反演

    给定数列 (f_i, g_i),存在:

    [g_n = sum_{i=0}^{n}a_{n,i}f_i ]

    这里使用 (f) 推出了 (g),反演的过程就是使用 (g) 推出 (f)
    也就是找到系数数组 (b),使得:

    [f_n=sum_{i=0}^{n}b_{n,i}g_i ]

    引用自学长 fastle 的课件。

    详见:反演


    杜教筛

    可在低于线性时间的复杂度内 处理数论函数的前缀和。

    详见:杜教筛


    类欧几里得算法

    P5170 【模板】类欧几里得算法
    查看题解


    写在最后

    参考资料:

    算法学习笔记(35): 狄利克雷卷积 By: Pecco
    杜教筛 - pengym
    oi-wiki

    交响辉针城来了 /se
    ddcsb

    最新一话醉蝶华观后感:
    弱受灵梦可爱!
    文文可爱!

  • 相关阅读:
    Windows Server 2003 R2 IIS服务的命令行方式重启命令
    DWZ学习记录--关闭loading效果
    td顶部对齐
    struts2 iterator 迭代标签只显示前五条记录
    struts2 select 默认选中
    struts2 select标签
    s:select 标签中list存放map对象的使用
    struts2中<s:select>标签的使用
    eclipse在Windows7 64 位下出现Unhandled event loop exception No more handles
    Jquery焦点图/幻灯片效果 插件 KinSlideshow
  • 原文地址:https://www.cnblogs.com/luckyblock/p/13442171.html
Copyright © 2020-2023  润新知