zoukankan      html  css  js  c++  java
  • [学习笔记]整除偏序与zeta变换、Möbius变换、lcm卷积、gcd卷积

    依据整数分解定力

    我们将 \(n\) 分解为
    \(\prod_{k = 1}^\infty p_k ^{e_k}\)
    那么我们分解 \(m\)
    \(\prod_{k = 1}^\infty p_k ^{d_k}\)

    那么
    如果 \(\forall d_k \leq e_k\),则有 \(m | n\).
    同理\(\forall e_k \leq d_k\),则有 \(n | m\).


    \(gcd(n,m) = \prod_{k = 1}^\infty p_k ^{\min(d_k,e_k)}\)
    \(lcm(n,m) = \prod_{k = 1}^\infty p_k ^{\max(d_k,e_k)}\)

    \(m | n\),则有\(\frac{n}{m} = \prod_{k = 1}^\infty p_k ^{e_k - d_k}\)

    有因子数$\sigma_0 = \(\frac{n}{m} = \prod_{k = 1}^\infty (1 + e_k)\)

    我们定义一个函数 \(f\),定义其 zeta变化 \(f\zeta\)

    \(f\zeta(n) = \sum_{d | n}f(d)\)

    实际上其实一个高维前缀和,容斥原理知,我们可以通过高维前缀和还原原数。

    依照有多少维小\(1\)决定容斥系数。

    定义\(\mu(n) = \prod_{k = 1}^{\infty} (-k) ^ {[e_k = 1] 0 ^{[e_k > 1]}}\)

    所以知 \(f(n) = \sum_{d|n}\mu(\frac{n}{d})f\zeta(d)\)

    我们称其为Möbius变换,把\(f\)的 Möbius 变换 \(f\mu\) 定义为:
    \(f\mu(n) = \sum_{d|n}\mu(\frac{n}{d})f(d)\)

    其充分证明了\(f\zeta\mu = f\)

    接下来给定一个重要性质。

    对于三个函数\(f,g,h\)
    \(h(n) = \sum_i\sum_j f(i) g(j) [lcm(i,j) = n]\)
    那么有\(h\zeta(n) = f\zeta(n)g\zeta(n)\)

    考虑证明其结论

    \(h\zeta(n) \\= \sum_{d|n} h(d)\\= \sum_{d|n}\sum_i\sum_j f(i)g(j) [lcm(i,j) = d]\\= \sum_i\sum_j f(i)g(j)[lcm(i,j)|n]\\= \sum_i\sum_jf(i)g(j)[i | n][j | n]\\= (\sum_if(i)[i|n])(\sum_jg(j)[j|n])\\= f\zeta(n) g\zeta(n)\)

    与此同时,我们有另外一个方向的变换。
    \(\zeta f(n) = \sum_{n|d}f(d)\)
    \(\mu f(n) = \sum_{n | d}\mu(\frac{d}{n})f(d)\)
    所以对于其变换我们有类似结论\(h(n) = \sum_i\sum_j f(i)g(j)[gcd(i,j) = n]\)
    \(\zeta h(n) = \zeta f(n) \zeta g(n)\)

    所以如果一个和式限制了 \(gcd\)\(lcm\) 的值,可以直接考虑将其转换为 \(zeta\)变化 和 \(mobius\) 变换。

    如何快速计算给定函数的zeta变换和Möbius 变换的 \(1 ~ n\)项,对于\(zeta\)变换,直接狄利克雷前缀和。

    对于后者,考虑反向过程,或者认同其为高维前缀和,直接硬做,可证明前者\(O(nlogn)\),后者为\(O(nloglogn)\)

  • 相关阅读:
    领会一些比较巧妙的算法
    操作系统os常识
    C++中的继承与虚函数各种概念
    我学shell程序的记录
    matlab:linux环境中将m文件编译成动态链接库
    struct内存对齐:gcc与VC的差别
    fedora中丢失或损坏fstab,无法启动,如何补救
    判断一个字符串中的字符是否都在另一个中出现
    linux下的不错的小软件:apvlv,zathura和vifm
    C语言中将结构体写入文件
  • 原文地址:https://www.cnblogs.com/dixiao/p/15720959.html
Copyright © 2011-2022 走看看