| For All Solvers
OMC186 (ゴーガ解析コンサルティング杯)

OMC186(D) - 不変量を作る

ユーザー解説 by J_Koizumi_144

不変量を作って解く方法を解説する.

アイディア

ana_nbnb_nの(大きい方)/(小さい方)の値をknk_nとする.knk_nは遷移によってあまり変わらないので,knk_nを利用して不変量を作るのが良さそうである.そこで小さい数でknk_nの遷移を観察しよう.例えば (32,5)(3,19)(13,2)(1,6)(32,5)\to (3,19)\to (13,2)\to (1,6) という遷移の場合,knk_n6.46.336.566.4\to 6.33\dots\to 6.5\to 6 となり,66から6.56.5の間を動く.また (7,32)(23,5)(2,9)(5,1)(7,32)\to (23,5)\to (2,9)\to (5,1) という遷移の場合,knk_n4.574.64.554.57\dots\to 4.6\to 4.5\to 5 となり,4.54.5から55の間を動く. このような例から,knk_n以下の最大の0.5の倍数が不変であることが予想できる.ただし一つ目の例の6.56.56.49996.4999\dotsと解釈する(つまり6.56.5より小さいかのように扱う)必要があり,二つ目の例の554.99994.9999\dotsと解釈する(つまり55より小さいかのように扱う)必要がある.このような発想で不変量を作ると以下のようになる.

なお,ここまでの考察をもとに正しく不変量を予想できれば,それが不変量であることを証明せずとも答えを導くことができる.

解答

実数xxに対し,xx以下の最大の0.50.5の倍数をx\langle x\rangleで表すことにする. 定義からana_nbnb_nは常に互いに素であり,したがってan=bna_n=b_nとなるのは(an,bn)=(1,1)(a_n,b_n)=(1,1)の場合のみである.また,(an,bn)(1,1)(a_n,b_n)\neq (1,1)ならばan1bn1a_{n-1}-b_{n-1}anbna_n-b_nの符号は異なる(公式解説参照).ここで十分小さい正の実数ε\varepsilon(例えばε=2100000000000\varepsilon=2^{-100000000000})を取り, Pn={knε(an>bn)kn+ε(anbn)P_n=\begin{cases}\langle k_n-\varepsilon\rangle&(a_n\gt b_n)\\ \langle k_n+\varepsilon\rangle&(a_n\leq b_n)\end{cases} と定める.ただしkn=max{an,bn}/min{an,bn}k_n=\max\{a_n,b_n\}/\min\{a_n,b_n\}である.このときPn1=PnP_{n-1}=P_nが成り立つことを示そう.

  • an1>bn1a_{n-1}\gt b_{n-1}の場合,前述のようにanbna_n\leq b_nであり,(an1,bn1)(a_{n-1},b_{n-1})が終状態でないことからbn12b_{n-1}\geq 2である.これらとan1anbn1bn=1a_{n-1}a_n-b_{n-1}b_n=1を合わせると bnan<an1bn1bn+0.5an\dfrac{b_n}{a_n}\lt\dfrac{a_{n-1}}{b_{n-1}}\leq\dfrac{b_n+0.5}{a_n} が得られる.したがってkn+ε,kn1εk_n+\varepsilon, k_{n-1}-\varepsilonはいずれもbnan<x<bn+0.5an\dfrac{b_n}{a_n}\lt x\lt \dfrac{b_n+0.5}{a_n}の範囲にあるが,この範囲には0.5an\dfrac{0.5}{a_n}の倍数が存在しないので,特に0.5の倍数は存在しない.よってこれらに対するx\langle{x}\rangleの値は一致する.
  • an1<bn1a_{n-1}\lt b_{n-1}の場合,(an,bn)(1,1)(a_n,b_n)\neq(1,1)となるためan>bna_n\gt b_nであり,(an1,bn1)(a_{n-1},b_{n-1})が終状態でないことからan12a_{n-1}\geq 2である.これらとan1anbn1bn=1a_{n-1}a_n-b_{n-1}b_n=1を合わせると an0.5bnbn1an1<anbn\dfrac{a_n-0.5}{b_n}\leq\dfrac{b_{n-1}}{a_{n-1}}\lt\dfrac{a_n}{b_n} が得られる.したがってkn1+ε,knεk_{n-1}+\varepsilon, k_n-\varepsilonはいずれもan0.5bn<x<anbn\dfrac{a_n-0.5}{b_n}\lt x\lt \dfrac{a_n}{b_n}の範囲にあるが,この範囲には0.5bn\dfrac{0.5}{b_n}の倍数が存在しないので,特に0.5の倍数は存在しない.よってこれらに対するx\langle{x}\rangleの値は一致する.

以上よりPnP_nの値はnnによらず一定である.終状態(aN,bN)(a_N,b_N)における値は (aN,bN)=(m,1),m>1    PN=m0.5,(aN,bN)=(1,m),m1    PN=m\begin{aligned}&(a_N,b_N)=(m,1),m\gt1\implies P_N=m-0.5,\\ &(a_N,b_N)=(1,m),m\geq 1\implies P_N=m\end{aligned} となり全て異なるため,終状態としてあり得る組の総数は,P0P_0としてあり得る値の総数に等しい.初期状態(a0,b0)(a_0,b_0)における値は (a0,b0)=(225,1),(1,225)    P0=2250.5,225,(a0,b0)=(225,x),(x,225)    P0=225/x=12226/x(x=3,5,7,,2251)\begin{aligned}&(a_0,b_0)=(2^{25},1),(1,2^{25})\implies P_0=2^{25}-0.5,2^{25},\\ &(a_0,b_0)=(2^{25},x),(x,2^{25})\implies P_0=\langle 2^{25}/x\rangle=\dfrac{1}{2}\lfloor 2^{26}/x\rfloor\quad(x=3,5,7,\dots,2^{25}-1)\end{aligned} となるため,x=3,5,7,,2251x=3,5,7,\dots,2^{25}-1に対する226/x\lfloor 2^{26}/x\rfloorとしてあり得る値の総数に22を加えたものが答えである.あとは公式解説と同様である.