Dirichlet卷积

  • 摘自百度百科

引入:

数论函数:对于定义域为正整数,值域为复数的函数称之为数论函数.

积性函数:一个积性函数f是一个数论函数,且对于gcd(x,y)=1有f(xy)=f(x)f(y).

完全积性函数:一个完全积性函数f是一个数论函数,且对于任意x,y 有f(xy)=f(x)f(y)

定义:

设f(n)、g(n)是两个数论函数,它们的Dirichlet乘积也是一个数论函数,其定义为:

简记为h(n)=f(n)*g(n)。

函数f(n)与g(n)的狄利克雷乘积也可以表示为

具体求出[1 , n ]的h=f*g可以这样求:

void dirichlet(int n){
  for (int i=1;i<=n;++i)
    for (int j=1;j*i<=n;++j)
      h[i*j]+=f[i]*g[j];
}

性质:

1.满足结合律。设f,g,h为任意三个数论函数,则(f*g)*h=f*(g*h)。

2.满足交换律。设f,g为任意二个数论函数,则f*g=g*f。

3.对于所有的数论函数f(n),均有f(n)*I(n)=I(n)*f(n)=f(n),故I(n)在狄利克雷乘积中有单位元的作用,简称I(n)为单位数论函数,或称I(n)为卷积单位元。

4.若f(n),g(n)均为积性函数,则f*g亦为积性函数,反之,若g(n)与f(n)*g(n)都是积性函数,则f(n)亦为积性函 数。

特别地,当F(n)=f(n)*μ为积性函数时,f(n)亦为积性函数。

5.若g(n)是完全积性函数,且h(n)=f(n)*g(n),则f(n)=h(n)*μg(n),

即若

 

则:

常见的Dirichlet卷积函数:

 例题:

不是我这种菜鸡可以看得懂的例题

HDU5528 迪利克雷卷积

 

题解:https://blog.csdn.net/Gipsy_Danger/article/details/84987625

HDU 5628 Clarke and math (Dirichlet卷积)

题解:https://blog.csdn.net/liangzhaoyang1/article/details/77822021

某大佬博客:

https://blog.csdn.net/hzk_cpp/article/details/86777183

因为看不懂看不下去不想看了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值