Ispirato da questo video di tecmath .
Un'approssimazione della radice quadrata di qualsiasi numero x
può essere trovata prendendo la radice quadrata intera s
(cioè il numero intero più grande tale s * s ≤ x
) e quindi calcolando s + (x - s^2) / (2 * s)
. Chiamiamo questa approssimazione S(x)
. (Nota: questo equivale ad applicare un passaggio del metodo Newton-Raphson).
Anche se questo ha delle stranezze, dove S (n ^ 2 - 1) sarà sempre √ (n ^ 2), ma generalmente sarà molto preciso. In alcuni casi più grandi, ciò può avere una precisione> 99,99%.
Ingresso e uscita
Prenderai un numero in qualsiasi formato conveniente.
Esempi
Formato: Ingresso -> Uscita
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
specificazioni
L'output deve essere arrotondato almeno al centesimo più vicino (ovvero se la risposta è 47.2851, è possibile output 47.29)
L'output non deve avere zeri seguenti e un punto decimale se la risposta è un numero intero (ad es. 125,00 può essere emesso anche come 125 e 125,0)
Non è necessario supportare alcun numero inferiore a 1.
Non è necessario supportare input non interi. (es. 1.52 ecc ...)
Regole
Sono vietate le scappatoie standard .
Questo è un codice-golf , quindi vince la risposta più breve in byte.
s + (x - s^2) / (2 * s) == (x + s^2) / (2 * s)