1237134
Thuật toán Berlekamp–Massey
https://vi.wikipedia.org/wiki?curid=1237134
Title: Thuật toán Berlekamp–Massey
 b[0] = 1;
 c[0] = 1;
 int l = 0;
 int m = -1;
 for (int n = 0; n &lt; N; n++) {
 int d = 0;
 for (int i = 0; i &lt;= l; i++) {
 d ^= c[i] * array[n - i];
 if (d == 1) {
 System.arraycopy(c, 0, t, 0, N);
 int N_M = n − m;
 for (int j = 0; j &lt; N − N_M; j++) {
 c[N_M + j] ^= b[j];
 if (l &lt;= n / 2) {
 l = n + 1 - l;
 m = n;
 System.arraycopy(t, 0, b, 0, N);
 return l;
Thuật toán Berlekamp–Massey cho trường bất kì.
Thuật toán dưới đây là từ .
 polynomial(field K) s(x) =... /* Các hệ số s_j; Dãy kết quả của LFSR (các giá trị hội chứng) dưới dạng đa thức bậc N-1 */
 /* đa thức lời giải */
 polynomial(field K) C(x) = 1; /* Các hệ số c_j */
 polynomial(field K) B(x) = 1;
 int L = 0;
 int m = 1;
 field K b = 1;
 int n;
 for (n = 0; n &lt; N; n++)
 /* Tính giá trị sai lệch */
 field K d = s_n + \Sigma_{i=1}^L c_i * s_{n-i};
 if (d == 0)
 /* Giá trị c hiện tại vẫn đúng */
 m = m + 1;
 else if (2 * L &lt;= n)
 /* Bản sao của C(x) */
 polynomial(field K) T(x) = C(x);
 C(x) = C(x) - d b^{-1} x^m B(x);
 L = n + 1 - L;
 B(x) = T(x);
 b = d;
 m = 1;
 else