Inspiriert von diesem Video von tecmath .
Eine Annäherung an die Quadratwurzel einer beliebigen Zahl x
kann gefunden werden, indem die ganzzahlige Quadratwurzel s
(dh die größte ganze Zahl so s * s ≤ x
) genommen und dann berechnet wird s + (x - s^2) / (2 * s)
. Nennen wir diese Annäherung S(x)
. (Hinweis: Dies entspricht der Anwendung eines Schritts der Newton-Raphson-Methode.)
Dies hat zwar eine Eigenart, wobei S (n ^ 2 - 1) immer √ (n ^ 2) ist, aber im Allgemeinen ist es sehr genau. In einigen größeren Fällen kann dies eine Genauigkeit von> 99,99% haben.
Ein- und Ausgabe
Sie nehmen eine Nummer in einem beliebigen Format.
Beispiele
Format: Eingabe -> Ausgabe
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
Spezifikationen
Ihre Ausgabe muss auf mindestens das nächste Hundertstel gerundet sein (dh wenn die Antwort 47,2851 lautet, können Sie 47,29 ausgeben).
Ihre Ausgabe muss keine folgenden Nullen und keinen Dezimalpunkt haben, wenn die Antwort eine ganze Zahl ist (dh 125,00 können auch als 125 und 125,0 ausgegeben werden).
Sie müssen keine Zahlen unter 1 unterstützen.
Sie müssen keine nicht ganzzahligen Eingaben unterstützen. (dh 1,52 etc ...)
Regeln
Standardlücken sind verboten.
Dies ist ein Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
s + (x - s^2) / (2 * s) == (x + s^2) / (2 * s)