尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

快速沃尔什变换 FWT

快速沃尔什变换 FWT
📅 发布时间:2026/6/19 14:39:26
如题

思路

FWT 用以快速求:

\[h(x)\sum_{a\oplus b=x}f(a)g(b) \]

其中 \(\oplus\) 可以是很多操作,常见的比如按位与、或、异或等。

我们考虑构造一种映射 \(\mathrm{FWT}\),满足:

\[\mathrm{FWT}(h)=\mathrm{FWT}(f)\cdot\mathrm{FWT}(g) \]

和 FFT 很像。

常见实现

按位或

一种可行的构造为:

\[\mathrm{FWT}(f)(i)=\sum_{j|i=i}f(j) \]

考虑如何快速变换。存在分治做法:

每次将当前序列分为左右两部分,则左侧当前最高位为 \(0\),右侧当前最高位为 \(1\),先递归处理两部分,然后将左侧的答案加到右侧对应位置即可。当前最高位是关于下标的,可以感性理解,理性理解的话就是一侧的块长关于 \(2\) 的对数那一位。

记分出来的两半序列为 \(f_0,f_1\),\(\mathrm{merge}\) 表示拼接两个序列,那么可以写作:

\[\mathrm{FWT}(f)=\mathrm{merge}(f_0,f_1+f_0) \]

逆变换的话减掉就行了:

\[\mathrm{IFWT}(f)=\mathrm{merge}(f_0,f_1-f_0) \]

通常使用非递归实现。

按位与

和按位或很像,一种可行的构造为:

\[\mathrm{FWT}(f)(i)=\sum_{j\&i=i}f(j) \]

剩下的也基本一样,也是分治:

\[\mathrm{FWT}(f)=\mathrm{merge}(f_0+f_1,f_1) \]

逆变换:

\[\mathrm{IFWT}(f)=\mathrm{merge}(f_0-f_1,f_1) \]

按位异或

记 \(x\circ y=\mathrm{popcnt}(x\&y)\bmod 2\),那么有 \((x\circ y)\oplus(x\circ z)=x\circ(y\oplus z)\)。

存在构造:

\[\mathrm{FWT}(f)(i)=\sum_{j\circ i=0}f(j)-\sum_{j\circ i=1}f(j) \]

存在分治做法:

\[\mathrm{FWT}(f)=\mathrm{merge}(f_0+f_1,f_0-f_1) \]

逆变换:

\[\mathrm{IFWT}(f)=\mathrm{merge}(\frac{f_0+f_1}{2},\frac{f_0-f_1}{2}) \]

三份代码

注意逆运算时 orFWT 和 andFWT \(x\) 带入 \(-1\),xorFWT 带入 \(\frac{1}{2}\)。

inline vec<mint> orFWT(vec<mint> v,mint x=1){int n=v.size();for(int st=2,k=1;st<=n;st<<=1,k<<=1)for(int i=0;i<n;i+=st)repl(j,0,k)v[i+j+k]+=v[i+j]*x;return v;
}
inline vec<mint> andFWT(vec<mint> v,mint x=1){int n=v.size();for(int st=2,k=1;st<=n;st<<=1,k<<=1)for(int i=0;i<n;i+=st)repl(j,0,k)v[i+j]+=v[i+j+k]*x;return v;
}
inline vec<mint> xorFWT(vec<mint> v,mint x=1){int n=v.size();for(int st=2,k=1;st<=n;st<<=1,k<<=1)for(int i=0;i<n;i+=st)repl(j,0,k)v[i+j]+=v[i+j+k],v[i+j+k]=v[i+j]-v[i+j+k]-v[i+j+k],v[i+j]*=x,v[i+j+k]*=x;return v;
}

相关新闻

  • 为什么顶级政务部门都在悄悄部署Open-AutoGLM?(内部技术白皮书流出)
  • 还在手动填表?Open-AutoGLM智能填报系统让政务办理效率翻10倍
  • 为什么头部家政公司都在悄悄接入Open-AutoGLM?真相令人震惊

最新新闻

  • LBP纹理分析在搅拌摩擦焊缝缺陷检测中的工程实践
  • AI 驱动意大利税务局仿冒钓鱼攻击识别与全域防护研究
  • 苏州配眼镜怎么避坑?三步快速决策法 - 配眼镜新资讯
  • 郑州配眼镜去哪好?验光专业度决定实际体验 - 配眼镜新资讯
  • STC全系列51单片机标准头文件合集,含89/90/12/15/STC8各型号寄存器定义
  • 2026中山防水补漏维修团队实测盘点TOP4:中山业主房屋渗漏修缮靠谱选择 - 宅安选房屋修缮

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号