Pomerne dlouho uz mne ve skole naznacuji, ze existuje i jiny algoritmus pro odmocnovani nez je "brute-force" metoda (2*2 neni 16; 3*3 neni 16; 4*4 je 16 -> odmocnina z 16 je tedy 4..) Chtel bych vedet, zda je to pravda, pripadne nejaky odkaz nebo vysvetleni.. TIA ;-)
Fórum › Offtopic
Odmocnovani
Heronova metoda: velmi jednoducha a ucinna:
- $o = cislo od ktereho chceme odmocninu
- $x = tolerance (napr. 0.000001)
postup:
$a = $o;
$b = 1;
while($a-$b>$x) {
$a = ($a+$b)/2;
$b = $o/$a;
}
echo "odmocnina z $o je $a";
ale něco mi řiká že tohle ve škole moc nevyužiju... Jedině snad procházet si v hlavě každej cyklus...
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
kdysi nás ve škole učili jak jde vypočítat 2.odmocninu z reálného čísla, sice si to už přesně nepomatuju, ale kdybyste to chtěli vědět, můžu to pohledat. V principu to bylo trochu podobné písemnému dělení, akorát se ta čísla berou po dvou a čím větší se požaduje přesnost, tím je to obtížnější, protože se zpětně pracuje s celým dosavadním výsledkem
No tak to zlogaritmuju, vynásobím správným zlomkem (pro druhou odmocninu vynásobím jednou polovinou, pro třetí odmocninu jednou třetinou) a odlogaritmuju :) Třeba v Turbo Pascalu se takhle musely počítat všechny mocniny a odmocniny, protože tam není funkce Power().
To Blujacker: to moc neni pravda... tak treba do 10 kroku mas dost solidni presnost... a tech 10 kroku mas za tri minuty ;-) vyzkousej ;-)
takže jsem to našel:
dané číslo se od desetinné čárky rozdělí po dvojicích doprava i doleva (napr 237,5 na 2'37,'50'00'..)
veme se první skupina zleva (2) a napíše se největší přirozená odmocnina z menšího čísla (takže od 2 1 (1^2=1), od 6 2 (2^2=4), nebo od 65 8 (8^2=64)), ta se napíše jako první cifra výsledku. Pod odmocňované číslo se napíše rozdíl mezi tímto číslem a první skupinou (u 237.5 je to 1) a připíše se za něj další skupina (-> 137) a pod výsledek se napíše dvojnásobek dosavadního výsledku (2), k němu se musí najít číslo, které se za něj připíše a ještě se to tím celé vynásobí, aby to bylo menší nebo rovno číslu vlevo (137) - tady je to 5 - 25*5 = 125 (< 137), toto číslo se napíše jako další cifra výsledku a pokračuje se stejným způsobem dál (pokud se dojde k desetinné čárce tak se samozžejmě napíše) - pod levé číslo (137) se napíše rozdíl čísel nad ním (137-125 = 12), připíše se další skupina (-> 1250), doprava se napíše dvojnásobek výsledku (30) a hledá se k němu číslo (4) - 304*4=1216 (< 1250), čtyřka se napše nahoru k výsledku a zase znovu...
takže po dalších několika krocích je výsledek sqrt(237.5)=15,411 - a podle kalkulačky 15,41103501
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Moderátoři diskuze