EI 的博客给出了一个对 BM 算法的新的理解,非常谢谢 EI 愿意分享这些!
然后我作了一些尝试实现这个,我使用在 https://www.researchgate.net/publication/220538005_The_Berlekamp-Massey_Algorithm_revisited 给出的伪代码(不过是用暴力的辗转相除)作了一个尝试但是没能通过题目 https://judge.yosupo.jp/submission/45440 (应该是我没有理解这个算法的缘故)参考在 Modern Computer Algebra 一书中的相关内容,失败的原因可能是这个不唯一还是前面有零啥的不太清楚,感觉我也不太懂,不过我用之前的 https://hly1204.blog.uoj.ac/blog/6630 的代码测试了一下发现是可以找到一个正确的递推式的,(如果不要求最短,然后这个序列首项又不为零的话,递推式可以直接用幂级数求个倒数得到吧。。)不过这个递推式好像不满足最短或者度数 $\lt n$ 之类的一些性质,然后就 gg 了,不知该如何修改才能令这样的实现可以与之前的 BM 写法答案都正确。。
这个样例
6 3 4 6 10 18 36
他给出的答案是
4 3 998244351 3 998244349
然后我可以找到
$$\frac{P(x)}{Q(x)}=\frac{998244329+ 359368033x}{998244345+ 119789355x+ 838525229x^2+ 638876384x^3+ 399297738x^4}\equiv 3+ 4x+ 6x^2+10x^3+18x^4+36x^5 \pmod{x^6}$$
998244329, 359368033,0,0,0,0 /*分子*/ 998244345, 119789355, 838525229, 638876384, 399297738 /*分母*/
和给的答案也不一样,给的答案换成这种形式就是
$$\frac{P(x)}{Q(x)}=\frac{3+ 998244348x +0x^2+ 998244344x^3}{1+998244350x+ 2x^2+ 998244350x^3+ 4x^4}\equiv 3+ 4x+ 6x^2+10x^3+18x^4+36x^5 \pmod{x^6}$$
3, 998244348, 0, 998244344,0,0 /*分子*/ 1,998244350, 2, 998244350, 4 /*分母*/
显然就不太一样。。是否意味着就是说当递推式的度数大于 $n$ 的时候这个东西不唯一(在 https://www.luogu.com.cn/discuss/show/129052 好像有提过,不过大多数人用的同一个代码的话然后会不会有些题就没有 spj 了,如果说递推式不唯一的话可能需要 spj 吧。。但是如果不唯一的话似乎也没有用这个算法的价值了)。。如果愿意指出问题非常感谢!