어떤 수의 제곱근의 근사값은 x
정수 제곱근 복용하여 찾을 수 있습니다 s
(즉, 그러한 정수 최대 s * s ≤ x
)를 계산 한 후와 s + (x - s^2) / (2 * s)
. 이 근사를 호출하자 S(x)
. (참고 : 이것은 Newton-Raphson 방법의 한 단계를 적용하는 것과 같습니다).
이것은 기발한 것이 있지만 S (n ^ 2-1)은 항상 √ (n ^ 2)이지만 일반적으로 매우 정확합니다. 더 큰 경우에는 99.99 % 이상의 정확도를 가질 수 있습니다.
입력과 출력
편리한 형식으로 하나의 숫자를 사용합니다.
예
형식 : 입력-> 출력
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를 출력 할 수 있음)
답이 정수이면 출력에 다음과 같은 0과 소수점이 없어도됩니다 (예 : 125.00도 125와 125.0으로 출력 가능)
1 미만의 숫자는 지원하지 않아도됩니다.
정수가 아닌 입력을 지원하지 않아도됩니다. (즉, 1.52 등 ...)
규칙
표준 허점 은 금지되어 있습니다.
이것은 code-golf 이므로 바이트 단위의 최단 답변이 이깁니다.
s + (x - s^2) / (2 * s) == (x + s^2) / (2 * s)