本项目实现了基于快速傅里叶变换(FFT)的高效算法,包括:
- 反向对称矩阵与向量的乘积计算
- 支持通配符的字符串模式匹配
- 处理反向对称矩阵(Hankel矩阵)的特殊结构
- 使用FFT将O(n²)复杂度的计算优化为O(n log n)
- 适用于大规模矩阵运算
- 支持通配符'?'(可匹配任意字符)
- 基于FFT的卷积计算方法
- 时间复杂度O(n log n),优于朴素算法的O(nm)
fft-algorithms/
├── src/
│ ├── fft.py # FFT算法核心实现
│ ├── matrix_vector.py # 矩阵-向量乘积算法
│ └── string_matching.py # 字符串匹配算法
├── examples/ # 使用示例
├── docs/ # 文档资料
├── README.md # 项目说明
└── requirements.txt # Python依赖
pip install -r requirements.txt
利用反向对称矩阵的特性,将矩阵-向量乘积转化为卷积计算,通过FFT加速卷积运算。
将字符映射为数值,通过计算匹配误差来确定模式位置,使用FFT加速卷积计算以降低时间复杂度。
本项目实现了多种优化策略:
- 内存优化:使用原地操作减少内存分配
- 数值稳定性:使用双精度浮点数和高精度阈值
- 并行处理:支持多线程处理多个模式匹配