周期性与循环移位算法及图的树 t - 跨距问题研究
1 周期性检测算法
1.1 基本计算与更新
在处理周期性检测时,定义了两个关键的计算项 (T_1) 和 (T_2)。
- (T_1 = \sum_{0\leq i\leq d,0\leq j<p} x_jy_iA_{ij})
- (T_2 = \sum_{0\leq j<p} x_jb_j)
由于 (\sum_{0\leq i\leq d} y_i) 可以在预处理阶段计算得出,所以后续只需要计算 (T_1) 和 (T_2)。初始时,将 (T_1) 和 (T_2) 都设为 0。当读取数据流时,按照以下规则在 (O(1)) 时间内更新 (T_1) 和 (T_2):当 (a) 的第 ((ip + j)) 个元素增加 (\Delta) 时,
- (T_1 += (x_jy_i + I[j \geq r]x_jy_d)\Delta)
- (T_2 += (I[j < r] \frac{x_j}{d + 1} + I[j \geq r]\frac{x_j}{d})\Delta)
其中 (r = n \bmod p),(I) 是指示函数。
1.2 无噪声情况下的周期性检测
对于完全周期性的序列(即周期能整除序列长度),检测未知周期的一种可能方法是使用上述算法测试所有能整除 (n) 的因子 (p),并返回使 (D_p(a) = 0) 的最小 (p) 值(此时可将 (\epsilon) 设为 1)。但在最坏情况下,(n) 可能有 (d(n) = O (\exp(\log n / \log \log n))) 个因子,这会消
周期性与图的树t-跨距算法研究
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



