$10\,\text{adic}\, \sqrt{41}$
10 adic numberの世界に$\sqrt{2}$は存在しません。また$\sqrt{3}$も存在しません。しかし$\sqrt{41}$は存在します。しかも4つ存在します。 一つ求めることができれば、あとは$-1$倍してもう一つ、残りは$\pm\sqrt{1}$倍して求めることができます。
必要な知識
Maxima:リスト、ラムダ式、rreduceの使用法
数学:10進数の基礎的知識+10adicの世界は2adicと5adicに世界に分解できること。
連分数展開を用いる方法
次の連分数展開を用います。
\[ \frac{1+\sqrt{41} }{2}=1+ \frac{10}{\displaystyle 1 + \frac{10}{\displaystyle 1 + \frac{10}{1 + \raise{10pt} _{\lower{16pt}\ddots} } }}\]
右辺をrreduceで求め、2倍-1すれば、$\sqrt{41}$を求めることができます。
N:30$ /*30桁求める*/ list:makelist(1, i, 1, N)$ a:rreduce(lambda([x,y],x+10/y),list)$ b:num(a)*inv_mod(denom(a),10^N)$ sq41:mod(2*b-1,10^N); mod(sq41^2,10^N);/*検算*/
実行結果.
624256169261445932736758703821 41
numは分子、denomは分母を取得する命令です。
合同式を利用する方法
10adicの世界の$\sqrt{41}$は、2adicと5adicの世界で$\sqrt{41}$を求め、 その情報から10adicの基底を用いて求めることができます。 つまり、 $a$を$2$adicの$\sqrt{41}$として、$b$を$5$adicの$\sqrt{41}$とすると \[ae_1+be_2 \quad \left( e_1=\frac{1+\sqrt{1}}{2},e_2=\frac{1-\sqrt{1}}{2} \right) \] が$10$adicの$\sqrt{41}$になります。
例
N:30$ /*求めたい桁数*/ s1:mod(2*power_mod(5,2^100,10^100)-1,10^N)$ /*sqrt(1)*/ list1:zn_nth_root(41,2,2^N)$ /*2adicのsqrt(41)*/ list2:zn_nth_root(41,2,5^N)$ /*5adicのsqrt(41)*/ e1:(1+s1)/2$ /*10adicの基底1 */ e2:(1-s1)/2$ /*10adicの基底2 */ s41:mod(e1*list1[1]+e2*list2[1],10^N); /* 2adicと5adicの情報から10adicの情報を構成する*/ mod(s41^2,10^N);/* 検算 */
実行結果.
521692488504538602480526452429 41
解説
zn_nth_root(a,b,n) はaのb乗根をmod nの世界で求めるもので、この解は一般に複数個あるので、リストで返します。 上のプログラムではとりあえず一つだけ結果が欲しいので、一番目の要素だけを取り出しています。 得られた結果は、 \[ r_1 := \cdots521692488504538602480526452429\] となっており、連分数で得られた結果 \[ r_2 := \cdots624256169261445932736758703821\] とは一致していません。しかし両者はそれぞれ正しい結果です。なぜならば、$\sqrt{41}$は4つあり、 それぞれが別の$\sqrt{41}$を求めているからです。 実際、10adicの世界で適当な$n$で \[ r_1 \equiv r_2 \sqrt{1} \pmod{10^n} \] という関係があります。