zoukankan      html  css  js  c++  java
  • 数论函数及其变换

    数论函数及其变换

    日常%虞大。

    数论函数:定义域为正整数,值域为实数的函数。

    积性函数:满足(f(ab)=f(a)f(b) (a,b)=1)的数论函数。

    完全积性函数:满足(f(ab)=f(a)f(b))的数论函数。

    一些数论函数:

    • (varepsilon(n)),当n=1时为1,否则值为0。叫做单位函数。

    • (d(n)),表示n的正因数个数,叫做因子个数函数。它是积性函数。

      证明:一定把一个数素因子分解为(p1^{q1}p2^{q2}...pl^{ql}),并且pi各不相同。那么(d(n)=Pi (q_i+1))。设(n=ab,(a,b)=1),因此a和b也可以表示成素因子分解的形式,并且没有共同的素因子。积性性质是显然的。

    • (sigma(n)),表示n的正因子和,叫做因子和函数。它是积性函数。

      证明:(sigma(n)=Pi(frac{p_i^{q_1+1}-1}{p_i-1})),积性性质也是很显然的。

    • (varphi(n)),表示与n互素且小于n的正整数个数。它是积性函数。

      证明:前面的博文提到过。推出(varphi(pq)=pq-p-q-1)就很好证明了。

    • (mu(n)=egin{aligned} 1 && n=1 \ 0 && 有完全平方因子 \ (-1)^p && 是p个不同素因子积\ end{aligned})

      它是积性函数。证明手动推一下即可。

    数论函数的值可以用线性筛求出。举一个筛(φ(n))的栗子,其它以此类推。

    对于素数p,只会筛到一次,直接令$φ(p) = p - 1 $即可。

    对于一个合数n,它只会被筛到一次,只会被最小的素因子p筛到,而且此时大循环到了k,即(n = pk)。若此时(p mid k),说明n中含p的幂大于1。因此,(φ(n) = φ(k) · p),否则,说明((p, k) = 1),从而n中含 p的幂等于1,此时由(φ)的积性,可得(φ(n) = φ(k) · φ(p) = φ(k) · (p - 1))。这样,就实现了线性筛求(φ(n))的值。(from 虞大)

    莫比乌斯反演

    首先,(sum_{d|n}mu(d)=varepsilon(n))。由于如果数n有完全平方因子,那么(mu(d)=0)。因此只需要考虑(n=p1*p2*...*pl)的情况。显然(sum_{d|n}mu(d)=sum_{r=0}^lC_l^r(-1)^r=(1-1)^l=0)

    莫比乌斯反演是这个柿子:(F(n)=sum_{d|n}f(d)Leftrightarrow f(n)=sum_{d|n}F(frac{n}{d})mu(d))

    我们来用和式变换推一下:(sum_{d|n}F(frac{n}{d})mu(d)=sum_{d|n}mu(d)sum_{i|frac{n}{d}}f(i)=sum_{i|n}f(i)sum_{d|frac{n}{i}}mu(d)=f(n))

    另外,莫比乌斯反演还有一种形式:(F(n)=sum_{n|d}f(d)Leftrightarrow f(n)=sum_{n|d}mu(frac{d}{n})F(d))。表示懒得看证明了,就这样吧。

  • 相关阅读:
    ugui优化
    jmeter请求时json串的输入格式
    Python文件读写之r+/w+/a+
    python文件操作
    python列表操作
    python嵌套字典的用法
    python字典的基础操作
    python字符串操作
    python基础之字符串为空或空格判断
    【转】Charles手机抓包设置&无法打开火狐网页设置
  • 原文地址:https://www.cnblogs.com/MyNameIsPc/p/9258108.html
Copyright © 2011-2022 走看看