| For All Solvers
NF杯2023

NF杯2023(N) - 行列を使って周期を求める方法

ユーザー解説 by J_Koizumi_144

(公式解説の補足)

周期を特性方程式の解α,β\alpha,\betaの位数で表す部分は,有限体上の行列を考えると楽である.

以下,xxFp\mathbb{F_p}の元とし,yyFp×\mathbb{F_p^\times}の元とする. Fp\mathbb{F_p}上の行列AnA_nおよびBBAn=(an+2an+1an+1an),B=(xy10) A_n=\begin{pmatrix}a_{n+2}&a_{n+1}\\ a_{n+1}&a_n\end{pmatrix},\quad B=\begin{pmatrix}x&y\\ 1&0\end{pmatrix} により定めると,ana_nの初期値及び漸化式は次のように言い換えられる: A0=(x110),An+1=BAn. A_0=\begin{pmatrix}x&1\\ 1&0\end{pmatrix},\quad A_{n+1}=BA_n. A0,BA_0,Bは正則行列なのでAnA_nは常に正則行列である. 数列ana_nのmod ppでの周期は,任意のnnに対してBkAn=AnB^kA_n=A_nが成り立つような最小の正整数kkに等しい. AnA_nは正則なのでこれはBBGL2(Fp)\mathrm{GL_2}(\mathbb{F_p})における位数に等しいことがわかる.

BBの固有方程式t2xty=0t^2-xt-y=0(これは数列ana_nの特性方程式でもある)の解をα,β\alpha,\betaとする.yFp×y\in \mathbb{F_p^\times}よりα,βFp2×\alpha,\beta\in \mathbb{F_{p^2}^\times}である.

  • α,βFp×\alpha,\beta\in \mathbb{F_p^\times}の場合:αβ\alpha\neq \betaならばBB(α00β) \begin{pmatrix}\alpha&0\\ 0&\beta\end{pmatrix} と対角化されるため,その位数はlcm(ord(α),ord(β))\mathrm{lcm}(\mathrm{ord}(\alpha),\mathrm{ord}(\beta))に等しい.α=β\alpha=\betaの場合,BBはスカラー行列ではないことに注意すると,BBのJordan標準形は (α10α) \begin{pmatrix}\alpha&1\\ 0&\alpha\end{pmatrix} となり,その位数はpord(α)p\cdot \mathrm{ord}(\alpha)である.

  • α,βFp2×Fp×\alpha,\beta\in \mathbb{F_{p^2}^\times} \setminus\mathbb{F_p^\times}の場合,α\alphaβ\betaFp\mathbb{F_p}上共役である.αβ\alpha\neq \betaなのでBBは以下のように対角化される: (α00β). \begin{pmatrix}\alpha&0\\ 0&\beta\end{pmatrix}. よってBBの位数はlcm(ord(α),ord(β))=ord(α)\mathrm{lcm}(\mathrm{ord}(\alpha),\mathrm{ord}(\beta))=\mathrm{ord}(\alpha)である.