设全集为 U={0,2,…,n−1},设 F 为一个域,称 f:2U→F 为 F 上的一个集合幂级数。对于每个 S⊆2U,记 fS 为 S 代入 f 后的函数值,也称其为该集合幂级数的第 S 项系数。
用
f=∑S⊆2UfSxS
来表示一个集合幂级数。
集合幂级数的加减法为对应系数的运算。
h=fg∑S⊆2UhSxS=⎛⎝∑L⊆2UfLxL⎞⎠⎛⎝∑R⊆2UgRxR⎞⎠=∑L⊆2U∑R⊆2U(fLxL)(gRxR)
定义一种运算 ∗,使其满足交换律,结合律,存在单位元,使得:
(fLxL)(gRxR)=fLgRxL∗R
这样定义还满足加法的分配律。
取 L∗R=L∪R,该卷积称为集合并卷积。若 h=fg,则有:
hS=∑L⊆2U∑R⊆2U[L∪R=S]fLgR
定义 f 的莫比乌斯变换为:
^fS=∑T⊆SfT
本质为高维前缀和。
由容斥原理,定义 ^f 的莫比乌斯反演为:
fS=∑T⊆S(−1)|S|−|T|^fT
本质为高维差分。
代入集合并卷积的式子可以得到:
hS=∑L⊆2U∑R⊆2U[L∪R=S]fLgR^hS=∑L⊆2U∑R⊆2U[L∪R⊆S]fLgR=∑L⊆S∑R⊆SfLgR=(∑L⊆SfL)(∑R⊆SgR)=^fS^gS
快速进行莫比乌斯变换和莫比乌斯反演后即可 O(n2n) 计算集合并卷积。
取 L∗R=L∩R,该卷积称为集合交卷积。若 h=fg,则有:
hS=∑L⊆2U∑R⊆2U[L∩R=S]fLgR
定义 f 的莫比乌斯变换为:
^fS=∑S⊆TfT
本质为高维前缀和。
由容斥原理,定义 ^f 的莫比乌斯反演为:
fS=∑S⊆T(−1)|S|−|T|^fT
本质为高维差分。
代入集合交卷积的式子可以得到:
hS=∑L⊆2U∑R⊆2U[L∩R=S]fLgR^hS=∑L⊆2U∑R⊆2U[S⊆L∩R]fLgR=∑S⊆L∑S⊆RfLgR=(∑S⊆LfL)(∑S⊆RgR)=^fS^gS
快速进行莫比乌斯变换和莫比乌斯反演后即可 O(n2n) 计算集合交卷积。
取 L∗R=L⊕R,该卷积称为集合对称差卷积。若 h=fg,则有:
hS=∑L⊆2U∑R⊆2U[L⊕R=S]fLgR
对于一个集合 S,有:
12n∑T⊆2U(−1)|S∩T|=[S=∅]
当 S 为空集时,(−1)|S∩T| 恒为 1,等式成立。当 S 不为空集时,将 (−1)|S∩T| 两两配对即可。
也可以枚举交集来证明:
∑T⊆2U(−1)|S∩T|=2n−|S|∑T⊆S(−1)|T|=2n−|S|[S=∅]
代入集合对称差卷积的式子可以得到:
hS=∑L⊆2U∑R⊆2U[L⊕R⊕S=0]fLgR=∑L⊆2U∑R⊆2U12n∑T⊆2U(−1)|(L⊕R⊕S)∩T|fLgR=∑L⊆2U∑R⊆2U12n∑T⊆2U(−1)|L∩T|(−1)|R∩T|(−1)|S∩T|fLgR=12n∑T⊆2U(−1)|S∩T|⎛⎝∑L⊆2U(−1)|L∩T|fL⎞⎠⎛⎝∑R⊆2U(−1)|R∩T|gR⎞⎠
因此,定义 f 的沃尔什变换为:
^fS=∑T⊆2U(−1)|S∩T|fT
得 ^f 的沃尔什逆变换为:
fS=12n∑T⊆2U(−1)|S∩T|^fT
那么对于集合对称差卷积就有 ^hS=^fS^gS。
|U|=n 的 FWT 本质为每一维长度为 2 的 n 维 FFT。
快速进行沃尔什变换和沃尔什逆变换后即可 O(n2n) 计算集合对称差卷积。
取 ∗ 为不相交集合并,即当 A∩B≠∅ 时,A∗B 未定义,即 xAxB=0,否则为 A∪B,称该卷积为子集卷积。若 h=fg,则有:
hS=∑L⊆S∑R⊆S[L∪R=S][L∩R=∅]fLgR
注意到 [L∪R=S][L∩R=∅]=[L∪R=S][|L|+|R|=|S|],因此定义 f 的集合占位幂级数 a,满足 ∀i≠|S|,ai,S=0∧a|S|,S=fS,那么有:
^ck,S=∑i+j=k^ai,S^bj,S
也就是进行莫比乌斯变换后,对占位幂级数中的形式幂级数进行卷积,复杂度为 O(n22n)。
__EOF__
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现