全てのページ
GitBook提供
1 / 1

Loading...

255 : 丸め平方根

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

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

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

xk+1=xkx_{k+1} = x_kxk+1​=xk​となるまでxk+1=⌊xk+⌈n/xk⌉2⌋\displaystyle x_{k+1} = \left \lfloor \frac{x_k + \lceil n/x_k \rceil}{2} \right \rfloorxk+1​=⌊2xk​+⌈n/xk​⌉​⌋を繰り返す。

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

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

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

上記の方法を用いて、14桁の数の丸め平方根を求めるのに必要な繰り返しの回数の平均を求めよ。 回答は小数点以下10桁に四捨五入せよ。

注意:記号とはそれぞれ床関数と天井関数を表す。

(1013≤n<1014)(10^{13} ≤ n < 10^{14})(1013≤n<1014)
⌊x⌋\lfloor x \rfloor⌊x⌋
⌈x⌉\lceil x \rceil⌈x⌉