Inspiré par cette vidéo de tecmath .
Une approximation de la racine carrée de n'importe quel nombre x
peut être trouvée en prenant la racine carrée entière s
(c'est-à-dire le plus grand entier tel que s * s ≤ x
), puis en calculant s + (x - s^2) / (2 * s)
. Appelons cette approximation S(x)
. (Remarque: cela équivaut à appliquer une étape de la méthode Newton-Raphson).
Bien que cela ait une bizarrerie, où S (n ^ 2 - 1) sera toujours √ (n ^ 2), mais généralement il sera très précis. Dans certains cas plus importants, cela peut avoir une précision> 99,99%.
Entrée et sortie
Vous prendrez un numéro dans n'importe quel format pratique.
Exemples
Format: entrée -> sortie
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
Caractéristiques
Votre résultat doit être arrondi au moins au centième près (c.-à-d. Si la réponse est 47.2851, vous pouvez produire 47.29)
Votre sortie n'a pas besoin d'avoir des zéros suivants et une virgule décimale si la réponse est un nombre entier (c'est-à-dire que 125,00 peut également être sorti en 125 et 125,0)
Vous n'êtes pas obligé de prendre en charge les nombres inférieurs à 1.
Vous n'avez pas à prendre en charge les entrées non entières. (ie. 1.52 etc ...)
Règles
Les échappatoires standard sont interdites.
C'est un code-golf , donc la réponse la plus courte en octets l'emporte.
s + (x - s^2) / (2 * s) == (x + s^2) / (2 * s)