首页 > 其他分享 >周期引理的代数证明

周期引理的代数证明

时间:2023-08-03 20:55:05浏览次数:51  
标签:代数 frac 周期 cdot 多项式 引理 gcd

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

字符串是 0-index.

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

定义 \(s_p(i)=s_{i\bmod p},s_q(i)=s_{i\bmod p}\),用生成函数来描述它,对于每个字符赋一个互不相等的权值作为系数,那么 \(s_p(x)=\frac{P(x)}{1-x^p},s_q(x)=\frac{Q(x)}{1-x^q}\),其中 \(P(x)\) 是 \(p-1\) 次多项式,\(Q(x)\) 是 \(q-1\) 次多项式。

想要验证 \(s_p(x)\) 和 \(s_q(x)\) 完全相同,将两者作差得到 \(s_p(x)-s_q(x)=\frac{1-x^{\gcd(p,q)}}{(1-x^p)(1-x^q)}\left(\frac{1-x^q}{1-x^{\gcd(p,q)}}P(x)+\frac{1-x^p}{1-x^{\gcd(p,q)}}Q(x)\right)=\frac{1-x^{\gcd(p,q)}}{(1-x^p)(1-x^q)}H(x)\),容易长除法验证 \((1-x^{\gcd(p,q)})\) 是 \((1-x^p)\) 和 \((1-x^q)\) 的因式。

右边两个都是 \(p+q-\gcd(p,q)-1\) 次多项式,而左边是常数项不为 \(0\) 的多项式。由于 \(p,q\) 均为 \(s\) 的周期那么 \(s_p(x)\) 和 \(s_q(x)\) 的 \([0,n-1]\) 的各项系数都相同,那么 \(s_p(x)-s_q(x)\) 最低 \(n\) 项系数均为 \(0\),由于 \(p+q-\gcd(p,q)-1\leq n-1\),如果 \(H(x)\) 不为 \(0\),那么和 \(\frac{1-x^{\gcd(p,q)}}{(1-x^p)(1-x^q)}\) 的常数项一乘就得到了 \(\leq n-1\) 项的不为 0 的系数。所以得出 \(H(x)=0\).

于是我们知道 \(s_p(x)\) 与 \(s_q(x)\) 完全相同,而根据裴蜀定理,方程 \(p\cdot u+q\cdot v=\gcd(u,v)\) 存在整数解,从而有 \(s_i=s_p(i)=s_p(i+p\cdot u)=s_q(i+p\cdot u+q\cdot v)=s_q(i+\gcd(p,q))=s_{i+\gcd(p,q)}\),周期引理得证。

标签:代数,frac,周期,cdot,多项式,引理,gcd
From: https://www.cnblogs.com/do-while-true/p/17604431.html

相关文章

  • Fortinet检测命令控制——就是通过心跳,最短60s,最长1天的周期,检测偏离度0.2
    id:3255ec41-6bd6-4f35-84b1-c032b18bbfcbname:Fortinet-Beaconpatterndetecteddescription:|'IdentifiespatternsinthetimedeltasofcontactsbetweeninternalandexternalIPsinFortinetnetworkdatathatareconsistentwithbeaconing.A......
  • k8s 学习笔记之 Pod——Pod 的生命周期
    Pod生命周期我们一般将pod对象从创建至终的这段时间范围称为pod的生命周期,它主要包含下面的过程:pod创建过程运行初始化容器(initcontainer)过程运行主容器(maincontainer)容器启动后钩子(poststart)、容器终止前钩子(prestop)容器的存活性探测(livenessprobe)、就绪性探......
  • 【线性代数】求逆矩阵的方法
    1.用公式,将求逆转化为求伴随矩阵和行列式2.根据性质,可逆矩阵一定可以写成一系列初等矩阵乘积的形式3.根据可逆的定义,找到能使AB=E成立的矩阵B(不过这个方法一般适合用于一些简单的或者形式特殊的矩阵。4.通过分块矩阵求逆的性质,将大矩阵的求逆转换为小矩阵求逆。......
  • 线性代数 | 机器学习数学基础
    前言线性代数(linearalgebra)是关于向量空间和线性映射的一个数学分支。它包括对线、面和子空间的研究,同时也涉及到所有的向量空间的一般性质。本文主要介绍机器学习中所用到的线性代数核心基础概念,供读者学习阶段查漏补缺或是快速学习参考。线性代数行列式1.行列式按行(列)展开......
  • 运动控制- PLC的“扫描周期”以及ST指令的特性
    水滴社区的文章[资料分享]【资料分享】PLC的“扫描周期”以及ST指令的特性http://bbs.inovance.com/forum.php?mod=viewthread&tid=5515&_dsign=2e02117e理解codesys的Taskhttps://www.bilibili.com/video/BV1NG411M741/?p=7......
  • 结合前端实现ORM对数据的增删改查、动静态网页,Django创建表关系、请求生命周期流程图
    通过结合前端页面实现ORM对数据的增删改查写一个页面,把数据库中的数据以表格的形式展示出来,然后在每一行的后面加两个按钮,分别是修改、删除的按钮。1.先创建一张UserInfo表格:在Django中没有提供tinyint、smallint,就只提供了int和bigint,如果想要写其他类型,需要自己定义......
  • 雷达中ADC的采样率、采样时间、采样周期
     这一篇记录一下关于雷达采样率、采样时间和采样周期的相关知识,方便后面再用到的时候能够很快的找到。同时也希望能帮助到大家一点。话不多说,进入主题。        本文主要学习三个东西采样率、采样时间和采样周期。分别对三者有一个大概的描述,最后会通过一个例子便于......
  • iOS应用程序生命周期(前后台切换,…
    //开发app,我们要遵循apple公司的一些指导原则,原则如下:1、应用程序的状态状态如下:Notrunning 未运行 程序没启动Inactive     未激活    程序在前台运行,不过没有接收到事件。在没有事件处理情况下程序通常停留在这个状态Active      激活 ......
  • Rust——生命周期
    简而言之,即引用的有效作用域;一般情况下编译器会自动检查推导,但是当多个声明周期存在时,编译器无法推导出某个引用的生命周期,需要手动标明生命周期。悬垂指针悬垂指针是指一个指针指向了被释放的内存或者没有被初始化的内存。当尝试使用一个悬垂指针时,无法保证内存中的数据是否有......
  • Activity及其生命周期
    Activity是Android用户界面的基础组件,它一般存放在任务栈(Task)中, 所以Activity是以栈的形式存放的,也就遵循先进后出的原则,也不支持重新排序。如果要改变Activtiy的顺序,只能根据压栈和出栈的操作来改变。当启动一个Application时,系统会默认创建一个对应的Task,用来存放......