255 : 丸め平方根

正整数nn丸め平方根 (rounded-square-root)を、nnの平方根を一番近い整数に丸めたものと定義する。

次の方法(本質的には整数論に適用したヘロンの方法)でnnの丸め平方根が求まる:

ddを数nnの桁数とする。 もしddが奇数なら、x0=2×10(d1)/2x_0 = 2 × 10^{(d-1)/2}とする。 もしddが偶数なら、x0=7×10(d2)/2x_0 = 7 × 10^{(d-2)/2}とする。

xk+1=xkx_{k+1} = x_kとなるまでxk+1=xk+n/xk2\displaystyle x_{k+1} = \left \lfloor \frac{x_k + \lceil n/x_k \rceil}{2} \right \rfloorを繰り返す。

例として、n=4321n = 4321の丸め平方根を求めてみよう。 nnは4桁であるので、x0=7×10(42)/2=70x_0 = 7 × 10^{(4-2)/2} = 70である。 x1=70+4321/702=66\displaystyle x_1 = \left \lfloor \frac{70 + \lceil 4321 / 70\rceil}{2} \right \rfloor = 66 x2=66+4321/662=66 \displaystyle x_2 = \left \lfloor \frac{66 + \lceil 4321 / 66 \rceil}{2} \right \rfloor = 66

x2=x1x_2 = x_1なのでここで止める。 つまり、たった 2 回の繰り返しで、4321の丸め平方根は 66 であることがわかる。(実際の平方根は 65.7343137... である。)

この方法を使うと繰り返しの回数は意外に少ない。例えば、5 桁の整数(10,000 ≤ n ≤ 99,999) では平均 3.2102888889 である。(平均は小数点以下 10 桁に四捨五入した。)

上記の方法を用いて、14桁の数(1013n<1014)(10^{13} ≤ n < 10^{14})の丸め平方根を求めるのに必要な繰り返しの回数の平均を求めよ。 回答は小数点以下10桁に四捨五入せよ。

注意:記号x\lfloor x \rfloorx\lceil x \rceilはそれぞれ床関数と天井関数を表す。

最終更新