$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} \] という関係があります。