Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Jak vypocitat druhou odmocninu bez pouziti kalkulacky?

Vyzera to bizarne, ale myslienka algoritmu je velmi jednoducha, je zalozena na rovnosti
(a+b)^2 = a^2 + 2ab + b^2
Napriklad chceme vypocitat odmocninu z 295066.24:
Plati: 500^2=250000 <= 295066.24 < 360000=600^2
Preto: 295066.24 = 500^2 + 2*500*b + b^2 + zvysok, kde b treba vypocitat/odhadnut tak, aby zvysok bol co najmensi nezaporny.
Cize a=500 tj pozname cislicu v rade stoviek, ideme vypocitat b (cislicu v rade desiatok, b bude nasobok 10):
295066.24-250000=45066.24
b odhadneme na 40, lebo 2*500*40=40000, potrebujeme sa priblizit z dola k 45066.24 tak aby este zostala rezerva pre b^2 (40^2=1600)
Plati: 295066.24 = 500^2 + 2*500*40 + 40^2 + 3466.24 = 540^2 + 3466.24
Pokracujeme vypoctom jednotiek: 295066.24 = 540^2 + 2*540*b + b^2 + zvysok
295066.24-540^2=3466.24 k comu sa potrebujeme znovu priblizit
2*540*1=1080, preto b odhadneme na 3, 3*1080=3240 ostala rezerva pre 3^2
Plati: 295066.24 = 540^2 + 2*540*3 + 3^2 + 217.24 = 543^2 + 217.24
Pokracujeme vypoctom desatin: 295066.24 = 543^2 + 2*543*b + b^2 + zvysok
295066.24-543^2=217.24
2*543*0.1=108.6, v 217.24 sa nachadza dvakrat, preto b odhadneme na 0.2 (ak nezostane rezerva pre 0.2^2, b bude 0.1):
Plati: 295066.24 = 543^2 + 2*543*0.2 + 0.2^2 + 0 = 543.2^2 ; zvysok je 0... KONIEC (inak mozme pokracovat do pozadovanej presnosti)
Odmocnina z 295066.24 je preto 543.2

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny