Berlekamp-Massey算法学习小记

本文介绍了Berlekamp-Massey算法,一种用于寻找数列最短线性递推式的算法。通过增量法逐步构建递推式,并在数列新增元素时判断现有递推式是否仍适用。当现有递推式出错时,会构造新的递推式以缩短长度。文章还涉及了算法的代码实现。
摘要由CSDN通过智能技术生成

简介

Berlekamp-Massey算法,简称BM算法,可以在 O ( N 2 ) O(N^2) O(N2)时间内求解一个数列的最短线性递推式。

教程

一篇讲的很详细的博客

Berlekamp-Massey算法

我们采用增量法构造数列 { a n } \{a_n\} { an}最短线性递推式。

假设现在已经得到了数列 a 1 , a 2 , . . . , a i − 1 a_1,a_2,...,a_{i-1} a1,a2,...,ai1的最短线性递推式,且在这之前递推式被修改过 c n t cnt cnt次,设第 k k k次修改后的递推式为 R k R_k Rk

如果在加入 a i a_i ai后原来的递推式仍然满足,也就是有 ∑ k = 1 m r k ∗ a i − k = a i \sum_{k=1}^mr_k*a_{i-k}=a_i k=1mrkaik=ai
那么数列 a 1 , a 2 , . . . , a n a_1,a_2,...,a_n a1,a2,...,an的最短线性递推式就是 R c n t R_{cnt} Rcnt

不然的话,表明第 c n t cnt cnt次修改后的递推式在位置 i i i处出错。定义 f a i l k fail_{k} failk表示第 k k k次修改后的递推式在 f a i l k fail_{k} failk处出错,显然有 f a i l c n t = i fail_{cnt}=i failcnt=i,同时定义 d e l t a

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值