[elektro] Osztas-szorzas
vajk fekete
halaloszto at yahoo.co.uk
Fri Jul 10 19:45:06 CEST 2009
:-)
En pascalban kezdtem c64-en. Ket hobbim volt felvaltva: minnel tobb jegyet kiszamolni a pi-nek, es minnel nagyobb primszamot talalni.
Amikor kifutottam a gyari szamabrazolasbol, akkor irtam sajat aritmetikat. Ugye az egyikhez egeszaritmetikat, a masikhoz fixpontosat :-)
Aztan pc-n folytattam, attertem C-re. A pi az vicces, mert azt az algoritmust nagyon le lehet egyszerusiteni, es nem is kell igazi algoritmus. C-ben oda jutottam, hogy mondjuk az osszeado meg a szorzo ciklus egyesitve, stb. Kb ket egymasbaagyazott ciklus, egyetlen tomb, es jonnek a szamjegyek. Ugy osszetomoritettem 15 sorba az egesz programot, hogy ket het mulva mar keptelen voltam megerteni hogyan mukodik.
A newtonos gyokvonast hasznaljak maig mindenutt. Van ra modszer, hoy kiszamold hany iteracio kell. A durvulas akkor kezdodik, amikor korrektre meg kell csinalni, hogy az utolso bit is mindig jol alljon, jofele legyen kerekitve, stb. Anno a lovasz konyvbol, meg a knuth szamgepprogmuveszete konyvbol silabizaltam az egeszet. ja es persze en is gimis voltam. a c-s cuccot mar egyetemista koromban kovettem el.
vajk
________________________________
From: Balázs Bámer <bamerbalazs at gmail.com>
To: elektro at tesla.hu
Sent: Friday, 10 July, 2009 19:36:36
Subject: Re: [elektro] Osztas-szorzas
Szervusz Vajk!
> mindenkeppen nezze meg, akit kicsit is erdekel a matek. nagyon allat!
>
> mennyire draga egy ilyen kontrollerben 80 byte egy tablazatnak? ha az megvan, akkor 20 alatti szorzas az egesz osztas kompletten.
Tényleg marha jó! Amikor írtam a bináris keresésről, ilyesmire
gondoltam: http://en.wikipedia.org/wiki/Division_(digital)#Restoring_division
mivel a régi 8086 procikon baromi lassú volt a szorzás és osztás,
szerintem ott is valami ilyesmi lehetett az utóbbira.
Régen nem volt lebegőpontos procim, írtam 48 bites fixpontos
aritmetikát, hogy gyorsítsam a programom (emuláció kegyetlen lassú
volt). Newton módszerét használtam gyökvonásra:
http://en.wikipedia.org/wiki/Newton%27s_method#Square_root_of_a_number
de nem tudtam, hány lépés kell a kellően pontos eredményhez (elméletet
sem tudtam, ez még gimiben volt). Hogy ne iteráljak fölöslegesen,
akkor hagytam abba, amikor az eredmény már nem változott. Igen ám, de
volt, hogy két érték között ugrált, az viszont tapasztalat szerint
elég volt, hogy az eredmény egyezik az előző kettő egyikével.
szia: Balázs
-----------------------------------------
elektro[-flame|-etc]
More information about the Elektro
mailing list