Nagypontosságú aritmetika I.

Hasonló dokumentumok
Negatív alapú számrendszerek

Assembly programozás: 2. gyakorlat

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

4. Fejezet : Az egész számok (integer) ábrázolása

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez

3. gyakorlat. Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F}

Digitális technika VIMIAA hét

NAGYPONTOSSÁGÚ RACIONÁLIS-ARITMETIKA EXCEL VISUAL BASIC KÖRNYEZETBEN TARTALOM

Sajátos nevelési igényű gyermekek a kompetenciamérésben. dr. Szekeres Ágota ELTE-BGGYK agota.szekeres@barczi.elte.hu

Digitális technika VIMIAA hét

Hatványozás. A hatványozás azonosságai

Harmadik gyakorlat. Számrendszerek

Dr. Oniga István DIGITÁLIS TECHNIKA 2

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

TANMENETJAVASLAT. Dr. Korányi Erzsébet MATEMATIKA. tankönyv ötödikeseknek. címû tankönyvéhez

SZÁMRENDSZEREK KÉSZÍTETTE: JURÁNYINÉ BESENYEI GABRIELLA

5. Fejezet : Lebegőpontos számok. Lebegőpontos számok

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

ÁTVÁLTÁSOK SZÁMRENDSZEREK KÖZÖTT, SZÁMÁBRÁZOLÁS, BOOLE-ALGEBRA

Fixpontos és lebegőpontos DSP Számrendszerek

2. Fejezet : Számrendszerek

Komputeralgebrai Algoritmusok

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.

Máté: Számítógép architektúrák

Számítógép architektúrák

Melléklet a Matematika című részhez

NAGYPONTOSSÁGÚ EGÉSZ-ARITMETIKA TARTALOM

Egész számok. pozitív egész számok: 1; 2; 3; 4;... negatív egész számok: 1; 2; 3; 4;...

I+K technológiák. Számrendszerek, kódolás

SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA

Matematika, 1 2. évfolyam

BBTE Matek-Infó verseny mintatételsor Informatika írásbeli vizsga

KOVÁCS BÉLA, MATEMATIKA I.

LEBEGŐPONTOS SZÁMÁBRÁZOLÁS

5. Fejezet : Lebegőpontos számok

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok

Mechatronika Modul 1: Alapismeretek

Komputeralgebra Rendszerek

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

Függvények csoportosítása, függvénytranszformációk

Digitális technika VIMIAA02 1. EA Fehér Béla BME MIT

Digitális technika VIMIAA02 1. EA

Máté: Számítógép architektúrák

Digitális technika VIMIAA01

Programozás II. Segédlet az első dolgozathoz

Adatszerkezetek II. 10. előadás

SZÁMÍTÁSOK A TÁBLÁZATBAN

Amit a törtekről tudni kell 5. osztály végéig Minimum követelményszint

5. osztály. Matematika

Digitális technika VIMIAA01

10-es számrendszer, 2-es számrendszer, 8-as számrendszer, 16-os számr. Számjegyek, alapműveletek.

A SZÁMFOGALOM KIALAKÍTÁSA

Számrendszerek. Bináris, hexadecimális

Bevezetés a programozásba I.

Komplex számok. Wettl Ferenc előadása alapján Wettl Ferenc előadása alapján Komplex számok / 18

Aritmetikai utasítások I.

1. fogalom. Add meg az összeadásban szereplő számok elnevezéseit! Milyen tulajdonságai vannak az összeadásnak? Hogyan ellenőrizzük az összeadást?

Megoldások. Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) 1. Számítsd ki a következő kifejezések pontos értékét!

Assembly Utasítások, programok. Iványi Péter

Amit a törtekről tudni kell Minimum követelményszint

Kombinatorikai algoritmusok. (Horváth Gyula és Szlávi Péter előadásai felhasználásával)

3. OSZTÁLY A TANANYAG ELRENDEZÉSE

DIGITÁLIS TECHNIKA I BINÁRIS SZÁMRENDSZER BEVEZETŐ ÁTTEKINTÉS BINÁRIS SZÁMRENDSZER HELYÉRTÉK. Dr. Lovassy Rita Dr.

Értékes jegyek fogalma és használata. Forrás: Dr. Bajnóczy Gábor, BME, Vegyészmérnöki és Biomérnöki Kar Kémiai és Környezeti Folyamatmérnöki Tanszék

Matematika. 1. évfolyam. I. félév

Rekurzió. (Horváth Gyula és Szlávi Péter előadásai felhasználásával)

2005_01/1 Leírtunk egymás mellé hét racionális számot úgy, hogy a két szélső kivételével mindegyik eggyel nagyobb a két szomszédja szorzatánál.

Vektorok. Octave: alapok. A fizika numerikus módszerei I. mf1n1a06- mf1n2a06 Csabai István

Kombinatorikai algoritmusok

Digitális technika VIMIAA01

Informatikai Rendszerek Alapjai

Hatékonyság 1. előadás

Tanmenetjavaslat. Téma Óraszám Tananyag Fogalmak Összefüggések Eszközök Kitekintés. Helyi érték, alaki érték. Számegyenes.

Kifejezések. Kozsik Tamás. December 11, 2016

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Analízis előadás és gyakorlat vázlat

;3 ; 0; 1 7; ;7 5; 3. pozitív: ; pozitív is, negatív is: ;

Számrendszerek. A római számok írására csak hét jelt használtak. Ezek segítségével, jól meghatározott szabályok szerint képezték a különböz számokat.

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

Számelmélet Megoldások

Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Algebra

Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit.

Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1

Racionális számok: Azok a számok, amelyek felírhatók két egész szám hányadosaként ( p q

Műveletek lebegőpontos adatokkal

TANMENET. Matematika

Pótvizsga anyaga 5. osztály (Iskola honlapján is megtalálható!) Pótvizsga: beadandó feladatok 45 perces írásbeli szóbeli a megadott témakörökből

2012. október 9 és 11. Dr. Vincze Szilvia

Algoritmizálás és adatmodellezés tanítása 4. előadás

A 2012/2013 tanévi Országos Középiskolai Tanulmányi Verseny első fordulójának feladatai. II. (programozás) kategória

Irodalom. (a) A T, B T, (b) A + B, C + D, D C, (c) 3A, (d) AD, DA, B T A, 1 2 B = 1 C = A = 1 0 D = (a) 1 1 3, B T = = ( ) ; A T = 1 0

Matematikai alapok. Dr. Iványi Péter

Algoritmizálás, adatmodellezés tanítása 11. előadás. (Horváth Gyula előadása alapján)

INFO1 Számok és karakterek

Matematika 8. osztály



Átírás:

Nagypontosságú aritmetika I.

Nagypontosságú aritmetika Problémák: sokjegyű (100 vagy 1000 vagy...) egész számok kellenek több alkalmazásban; jó lenne, ha 1/3*3 értéke 1 lenne, azaz kellenének racionális számok, esetleg nagyon sok számjegyű számlálóval és nevezővel; ha beszélünk fixpontos számábrázolásról, jó lenne ha lennének fixpontos valós számok; nagy pontosságú lebegőpontos valós számok kellenek több alkalmazásban. Zsakó László: Nagypontosságú aritmetika 2/23

Számok ábrázolása: komplemens ábrázolás (negatív számok így nagyon sokjegyűek) előjel + számjegyek + hossz + számrendszer (tömb vagy szöveg): x = t 0 + t 1 S + t 2 S 2 +... + t n S n Zsakó László: Nagypontosságú aritmetika 3/23

NagyEgész típus: előjel: {,+} n: Egész S: alapszám T: tömb(0..maxn:egész) x = t 0 + t 1 S + t 2 S 2 +... + t n S n Zsakó László: Nagypontosságú aritmetika 4/23

A műveleteknél az előjelet külön kezeljük, a műveleteket visszavezetjük pozitív számokkal végzett műveletekre. Összeadás(x,y,z): z.előjel:=x.előjel; z.s:=x.s Ha x.előjel=y.előjel akkor Összead(x,y,z) különben ha x.előjel<y.előjel Eljárás vége. akkor Kivon(y,x,z) különben Kivon(x,y,z) Zsakó László: Nagypontosságú aritmetika 5/23

Még arra is figyelhetünk, hogy x y legyen! Összeadás(x,y,z): z.előjel:=x.előjel; z.s:=x.s Ha x.előjel=y.előjel akkor Ha nagye(x,y) akkor Összead(x,y,z) különben Összead(y,x,z) különben ha x.előjel= - akkor Ha nagye(y,x) akkor Kivon(y,x,z) z.előjel:= + különben Kivon(x,y,z) különben ha nagye(x,y) akkor Kivon(x,y,z) különben Kivon(y,x,z) z.előjel:= - Eljárás vége. A belső eljárások pozitív számokat használnak! Zsakó László: Nagypontosságú aritmetika 6/23

Összeadás, ahogyan az iskolában tanultuk! XXXXXXXXX + XXXX XXXXXXXXX Összead(x,y,z): ÁT:=0 Ciklus i=0-tól y.n-ig a:=(x.t(i)+y.t(i)+át) z.t(i):=a mod x.s; ÁT:=a div x.s Ciklus vége Zsakó László: Nagypontosságú aritmetika 7/23

i:=y.n+1 Ciklus amíg ÁT 0 a:=(x.t(i)+át) z.t(i):=a mod x.s; ÁT:=a div x.s; i:=i+1 Ciklus vége Ciklus amíg i x.n z.t(i):=x.t(i); i:=i+1 Ciklus vége z.n:=i-1 Eljárás vége. Probléma: a div és a mod művelet lassú! Zsakó László: Nagypontosságú aritmetika 8/23

Felhasználhatjuk, hogy az átvitel maximum 1 lehet, így az osztást elkerülhetjük. A megoldás: a:=(x.t(i)+y.t(i)+át) z.t(i):=a mod x.s; ÁT:=a div x.s helyett a:=(x.t(i)+y.t(i)+át) Ha a<x.s akkor z.t(i):=a; ÁT:=0 különben z.t(i):=a-x.s; ÁT:=1 Ugyanezt a másik ciklusmaggal is megtehetjük. Zsakó László: Nagypontosságú aritmetika 9/23

Megoldásváltozatok: kivonás z:=x-y; eggyel növelés z:=x+1; eggyel csökkentés z:=x-1; növelés helyben x:=x+y; csökkentés helyben x:=x-y; eggyel növelés helyben x:=x+1; eggyel csökkentés helyben x:=x-1; Zsakó László: Nagypontosságú aritmetika 10/23

Szorzás, ahogyan az iskolában tanultuk! XXXX*XXX XXXXX XXXXX XXXXX. XXXXXXXX Probléma: a közbülső adatoknak mennyi helyet kell foglalnunk? Megoldás: amint egy sort kiszámoltunk, azonnal hozzáadhatjuk az eredményhez. Újabb probléma: az eredmény minden számjegyével sok műveletet végzünk. Zsakó László: Nagypontosságú aritmetika 11/23

Nagypontosságú aritmetika: Megoldás egy különleges sorrendű kiszámolás! X X X X*XXX XXX 4 X 2 X 1 XXXX 5 X 3 XXXXX 6. XXXXXX X X Amikor egy oszlopot számolunk, azt azonnal adjuk hozzá a végeredményhez! z. t( i) : jki x. t( j) y. t( k) ÁT mod x. S Zsakó László: Nagypontosságú aritmetika 12/23

Nagypontosságú aritmetika: A képlet átfogalmazva: Az indexhatárok számítása: 0 j x.n és 0 i-j y.n Zsakó László: Nagypontosságú aritmetika S x ÁT j i t y j x t i t z j. mod ) (. ) (. ) : (.?? S x ÁT j i t y j x t i t z N x i N y i j. mod ) (. ) (. ) : (. )., min( ). max(0, 13/23

Szoroz(x,y,z): Ciklus i=0-tól x.n+y.n+1-ig a:=át Ciklus j=max(0,i-y.n)-től min(i,x.n)-ig a:=a+x.t(j)*y.t(i-j) Ciklus vége z.t(i):=a mod x.s; ÁT:=a div x.s Ciklus vége Ha ÁT=0 akkor z.n:=x.n+y.n különben z.n:=x.n+y.n+1; z.t(z.n):=át Eljárás vége. Megjegyzés: az alapszám hatványaival szorzást persze nem így oldjuk meg, hanem eltolással. Zsakó László: Nagypontosságú aritmetika 14/23

Nagypontosságú aritmetika: Felezéses szorzási algoritmus kettes számrendszerhez: A ha B 1 A * B 2*A* B/2 ha B páros A A * B 1 ha B páratlan Felezéses hatványozási algoritmus kettes számrendszerhez: A ha B 1 A^ B A *A^ B/2 ha B páros A *A^B 1 ha B páratlan Kérdések: páros-páratlan? 2*A, B/2? B-1? Zsakó László: Nagypontosságú aritmetika 15/23

A megoldás: Szoroz2(A,B,C): C:=0 Ciklus amíg B 0 Ha páros(b) akkor Balraléptet(A) Jobbraléptet(B) különben Össze(C,A) Csökkent(B) Ciklus vége Eljárás vége. Hasonló a hatványozási algoritmus is! Zsakó László: Nagypontosságú aritmetika 16/23

Osztás (C:=A div B, D:=A mod B) Naiv módszerrel: Osztás(A,B,C,D): C:=0; D:=A Ciklus amíg D B C:=C+1; D:=D-B Ciklus vége Eljárás vége. Jól működne, de mennyi idő alatt? Zsakó László: Nagypontosságú aritmetika 17/23

Nagypontosságú aritmetika: XXXXXXXXX - XXXX - XXXX XXXXXXXXX - XXXX - XXXX 0XXXXXXXX - XXXX Zsakó László: Nagypontosságú aritmetika 18/23

Osztás (C:=A div B, D:=A mod B) Az osztandó balra tolása, kivonása, majd 1-1 lépéssel jobbra tolása a következő kivonások előtt: Osztás(A,B,C,D): K:=A.n-B.n; D:=A; C:=0 v:=balraléptet(b,k); Ciklus i=1-től K-ig Balraléptet(C) Ciklus amíg D v C:=C+1; D:=D v Ciklus vége Jobbraléptet(v) Ciklus vége Eljárás vége. Zsakó László: Nagypontosságú aritmetika 19/23

Nagypontosságú aritmetika: Hányados becslésével, visszavezetés "n+1-jegyű osztása n-jegyűvel" esetre: (u 0,u 1,...u n+1 )/(v 0,...,v n ). A H hányados Q becslése a következő (v S/2 esetén): Q: Su n1 u n, így Q=H vagy H+1 vagy H+2. vn Egy gyors ellenőrzési lehetőség: v n-1 *Q>(S*u n+1 +u n Q*v n )*S+u n-1 Ha igaz, akkor Q:=Q 1 (esetleg kétszer) Zsakó László: Nagypontosságú aritmetika 20/23

Osztás1( ): Ha U(N+1)=V(N) akkor Q:=S-1 különben Q:=(S*U(N+1)+U(N))/V(N) Ciklus amíg V(N-1)*Q> (S*U(N+1)+U(N)-Q*V(N))*S+U(N-1) Q:=Q-1 Ciklus vége W():=V()*Q U():=U()-W() Ha U()<0 akkor U():=U()+V(): Q:=Q-1 H:=Q Eljárás vége. Zsakó László: Nagypontosságú aritmetika 21/23

Relációk: kisebb (<) reláció Kisebb(A,B): Ha A.előjel B.előjel akkor Kisebb:=A.előjel= - különben Ha A.előjel= - akkor csere(a,b) Ha A.n B.n akkor Kisebb:=A.n<B.n különben i:=a.n Ciklus amíg i 0 és A.t[i]=B.t[i] i:=i-1 Ciklus vége Kisebb:=i 0 és A.t[i]<B.t[i] Elágazás vége Elágazás vége Eljárás vége. Zsakó László: Nagypontosságú aritmetika 22/23

Vége Zsakó László: Programozási alapismeretek M