周期引理的代数证明

周期引理的代数证明

翻译自 https://zhuanlan.zhihu.com/p/85169630

字符串是 0-index.

周期引理:对于长为 n 的字符串 s,如果 p,q 均为 s 的周期,并且 p+qgcd(p,q)n,那么 gcd(p,q) 也是 s 的周期。

定义 sp(i)=simodp,sq(i)=simodp,用生成函数来描述它,对于每个字符赋一个互不相等的权值作为系数,那么 sp(x)=P(x)1xp,sq(x)=Q(x)1xq,其中 P(x)p1 次多项式,Q(x)q1 次多项式。

想要验证 sp(x)sq(x) 完全相同,将两者作差得到 sp(x)sq(x)=1xgcd(p,q)(1xp)(1xq)(1xq1xgcd(p,q)P(x)+1xp1xgcd(p,q)Q(x))=1xgcd(p,q)(1xp)(1xq)H(x),容易长除法验证 (1xgcd(p,q))(1xp)(1xq) 的因式。

右边两个都是 p+qgcd(p,q)1 次多项式,而左边是常数项不为 0 的多项式。由于 p,q 均为 s 的周期那么 sp(x)sq(x)[0,n1] 的各项系数都相同,那么 sp(x)sq(x) 最低 n 项系数均为 0,由于 p+qgcd(p,q)1n1,如果 H(x) 不为 0,那么和 1xgcd(p,q)(1xp)(1xq) 的常数项一乘就得到了 n1 项的不为 0 的系数。所以得出 H(x)=0

于是我们知道 sp(x)sq(x) 完全相同,假设其为 f(x)p,q 同时为其周期。而根据裴蜀定理,方程 pu+qv=gcd(u,v) 存在整数解,从而有 si=f(i)=f(i+pu)=f(i+pu+qv)=f(i+gcd(p,q))=si+gcd(p,q),周期引理得证。

posted @   do_while_true  阅读(120)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?

This blog has running: 1845 days 1 hours 33 minutes 23 seconds

点击右上角即可分享
微信分享提示