正木です。

In [ruby-math:00957]

|原です。

|【定理】x, k を自然数で 2|k|x, k**4 <= 4*a とするとき、
|
|        N(x) = [(x + [a/x])/2]
|
|    に対し次が成り立つ。
|
|        |x/k - sqrt(a)/k| < 1 ならば |N(x) - sqrt(a)| < 1.

このまとめ方は流石に洗練されていますね。非常に参考になります。
以後必要なときは"近岡-原の定理"で引用します。

ただ私の好みからいえば
        N(x) = [(x + a/x)/2]
とした方が良いと思います。


In [ruby-math:00958]

|ところで、前から疑問なんだけど、n が FIXNUM 程度だったら、
|n.isqrt は Math.sqrt(n).floor で代用できますかね。

劇的に早くなる場合は話は別ですが、少し位の速度向上のために
他の(特に非公開(?)の float) Library に依存するのは好まし
くありません。
なんでも早ければいいというものでもないと思っています。

(例えば intel の float.sqrt の algorithm がどういうものか
分かりませんが、整数演算だけの algorithm に比べて桁違いに
早くはないだろうという想像で書いています。間違っているかも
知れません。)