title | documentation_of |
---|---|
線形漸化式の発見・第 |
./linear_recurrence.hpp |
線形漸化式
Berlekamp-Massey algorithm を用いて,最初の数項から漸化式を推定する.時間計算量は入力数列長
vector<mint> a = {1, 1, 2, 3, 5, 8, 11};
auto [d, Crev] = find_linear_recurrence(a); // (2, [1, -1, -1])
推測して得られた
が成立.
時間計算量は現在の実装だと
long long n = 12345678910111213LL;
vector<mint> b = monomial_mod_polynomial(n, Crev);
母関数の言葉で述べると,単項式
上記を一括で行う.時間計算量は入力数列長
mint kth_term = guess_kth_term(vector<mint>{1, 1, 2, 3, 5, 8}, 12345678910111213);