任意の数の平方根の概算は、x
整数の平方根s
(つまり、であるような最大の整数s * s ≤ x
)を取得して計算することで見つけることができますs + (x - s^2) / (2 * s)
。これを近似と呼びましょうS(x)
。(注:これは、ニュートンラフソン法の1つのステップを適用することと同じです)。
これには奇妙な点がありますが、S(n ^ 2-1)は常に√(n ^ 2)になりますが、一般的には非常に正確です。一部の大きなケースでは、これは> 99.99%の精度を持つことがあります。
入出力
任意の形式で1つの番号を取得します。
例
フォーマット:入力->出力
2 -> 1.50
5 -> 2.25
15 -> 4.00
19 -> 4.37 // actually 4.37 + 1/200
27 -> 5.20
39 -> 6.25
47 -> 6.91 // actually 6.91 + 1/300
57 -> 7.57 // actually 7.57 + 1/700
2612 -> 51.10 // actually 51.10 + 2/255
643545345 -> 25368.19 // actually 25,368.19 + 250,000,000/45,113,102,859
35235234236 -> 187710.50 // actually 187,710.50 + 500,000,000/77,374,278,481
仕様書
出力は、少なくとも100分の1に四捨五入する必要があります(つまり、回答が47.2851の場合、47.29を出力できます)
答えが整数の場合、出力に次のゼロと小数点が含まれている必要はありません(つまり、125.00は125および125.0としても出力できます)。
1未満の数値をサポートする必要はありません。
非整数入力をサポートする必要はありません。(1.52など...)
ルール
標準の抜け穴は禁止されています。
これはコードゴルフなので、バイト単位での最短の回答が優先されます。
s + (x - s^2) / (2 * s) == (x + s^2) / (2 * s)