“在有限序列的阿贝尔群范围内,差分数组与前缀和互为变换:差分取相邻值之差,前缀累积恢复原序列。这份互逆对应限定在上述阿贝尔群范围内;一般幺半群前缀没有逆元,因而没有对应的无条件差分变换。”
形式陈述
设长度
对合法区间
在固定零边界、有限数组和交换群这一共同范围内,差分与前缀累积互为逆变换;这里的等价关系不包含只有幺半群结构的一般前缀聚合。初始化与最终恢复各需
直觉
差分数组存储相邻前缀状态之间的增量,而不是每个位置的绝对值。区间统一加上
例子与边界
原数组
若区间一直更新到
差分适合离线积累大量区间更新,并在线性时间统一恢复。若更新与查询交错,直接求某项仍需累加一个前缀,最坏
推论与应用
差分连接离散导数与前缀积分:前缀和是恢复操作,交换群提供加法逆元,数组提供可寻址的有界坐标域。它支撑扫描线事件和区间更新批处理;二维差分可把矩形更新化为四个角点修改,在线场景则通过两个Fenwick 树实现区间加与前缀/区间和。前缀恢复也可用并行 scan 或按块顺序读取,但工作、深度和 I/O 必须在各自模型中另计。
差分数组并不是一般数据流摘要:它需要为每个端点保留可寻址槽位,并在最后完整扫描。数据流分位数面对可能巨大或未知的值域,只用受限空间近似秩查询,通常显式带误差与失败概率;两者都“顺序处理更新”,却在存储假设、输出语义和保证类型上完全不同。
参考资料
- Antti Laaksonen, Competitive Programmer’s Handbook, 2018,Ch. 9 “Range queries” 的 “Range updates”,pp. 93–94。
- Donald E. Knuth, The Art of Computer Programming, Vol. 1: Fundamental Algorithms, 3rd ed., Addison-Wesley, 1997, cumulative sums and finite differences.