Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Ahoj,
snazim se naprogramovat aritmetiku pro libovolne velka nezaporna cisla. Uz mam scitani, odcitani nasobeni, deleni se zbytkem a mocneni, ze zakladnich operaci mi zbyva akorat odmocneni (tedy presneji dolni cela cast odmocniny). Nikde na internetu jsem nenasel zadny zarucene rychly algoritmus a napada me jen toto:
Odhad: , kde k je zaklad soustavy v niz pocitam a N je odmocnovane cislo, floor je dolni cela cast;ceiling je horni cela cast. Logaritmus mam hned jako pocet cifer.
napadlo me postupne umocnit vsechna cisla mezi x1 a x2 na druhou a jakmile najdu takove x, ze , vratim x-1 a dostanu dolni celou cast odmocniny. Pripadne by se dala cisla mezi x1 a x2 prochazet pulenim intervalu, cimz bych vyrazne zlepsil cas. Take bych jiste mohl zrychlit nasobeni.
Problem je, ze se mi zda algoritmus stejne docela pomaly (pouzivam zaklad 2^16) - nevite nekdo, jestli existuje nejaky lepsi algoritmus? Napriklad nejak pouzit newtonovu metodu bez racionalnich cisel?
Diky za jakekoliv tipy...
Offline
První nástřel z hlavy: Předpočítaná tabulka (násobení máš) a následná interpolace několika bodů polynomem. To by ale asi při přímočaré implementaci nedávalo moc hezké výsledky, takže jsem se podíval na internet a našel jsem několik inspirací.
Offline