Érdekes informatika feladatok



Hasonló dokumentumok
Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 31. Széchenyi István Egyetem, Gy r

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

I. VEKTOROK, MÁTRIXOK

Lineáris algebra 2. Filip Ferdinánd december 7. siva.banki.hu/jegyzetek

2. Milyen értéket határoz meg az alábbi algoritmus, ha A egy vektor?. (2 pont)

Programozás alapjai. 5. előadás

Közismereti informatika 2.zh T-M szakirány

Műveletek mátrixokkal. Kalkulus. 2018/2019 ősz

Megoldott feladatok. Informatika

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

A KroneckerCapelli-tételb l következik, hogy egy Bx = 0 homogén lineáris egyenletrendszernek

tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is

Struktúra nélküli adatszerkezetek

Programozás alapjai 6. előadás. Wagner György Általános Informatikai Tanszék

1. feladatsor: Vektorterek, lineáris kombináció, mátrixok, determináns (megoldás)

Adatszerkezetek 1. előadás

LINEÁRIS ALGEBRA (A, B, C) tematika (BSc) I. éves nappali programtervező informatikus hallgatóknak évi tanév I. félév

Lineáris egyenletrendszerek

3. el adás: Determinánsok

BABEŞ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR BBTE Matek-Infó verseny 1. tételsor INFORMATIKA írásbeli. A versenyzők figyelmébe:

Vektorterek. Wettl Ferenc február 17. Wettl Ferenc Vektorterek február / 27

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

Gauss elimináció, LU felbontás

Gazdasági matematika II. tanmenet

Programozás alapjai II. (7. ea) C++

Algoritmusok és adatszerkezetek I. 1. előadás

Algoritmizálás és adatmodellezés 2. előadás

INFORMATIKA tétel 2019

A félév során előkerülő témakörök

Ortogonalizáció. Wettl Ferenc Wettl Ferenc Ortogonalizáció / 41

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Mátrixok, mátrixműveletek

Programozás alapjai. 10. előadás

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

Algoritmusok vektorokkal keresések 1

Minden az adatról. Csima Judit február 11. BME, VIK, Csima Judit Minden az adatról 1 / 41

Mátrixok 2017 Mátrixok

Determinánsok. A determináns fogalma olyan algebrai segédeszköz, amellyel. szolgáltat az előbbi kérdésekre, bár ez nem mindig hatékony.

BME MOGI Gépészeti informatika 5.

Numerikus módszerek I. zárthelyi dolgozat (2017/18. I., A. csoport) Megoldások

Algoritmuselmélet 2. előadás

2. előadás. Lineáris algebra numerikus módszerei. Mátrixok Mátrixműveletek Speciális mátrixok, vektorok Norma

22. GRÁFOK ÁBRÁZOLÁSA

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei

EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF

3. TÖMBÖK A tömb absztrakt adattípus Legyen T az E alaptípus feletti k ( 1) dimenziós tömb típus. Vezessük be az I I1

Gauss-eliminációval, Cholesky felbontás, QR felbontás

Amortizációs költségelemzés

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

4. Fuzzy relációk. Gépi intelligencia I. Fodor János NIMGI1MIEM BMF NIK IMRI

Érdekes informatika feladatok

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Lineáris algebra gyakorlat

Adatszerkezetek 1. Dr. Iványi Péter

1. Determinánsok. Oldjuk meg az alábbi kétismeretlenes, két egyenletet tartalmaz lineáris egyenletrendszert:

Delphi programozás III.

14. Mediánok és rendezett minták

Gépi tanulás és Mintafelismerés

Mer legesség. Wettl Ferenc Wettl Ferenc Mer legesség / 40

hatására hátra lép x egységgel a toll

5. Előadás. Megyesi László: Lineáris algebra, oldal. 5. előadás Lineáris függetlenség

Feladat: megoldani az alábbi egyenletrendszert: A x = b,

9. gyakorlat Lineáris egyenletrendszerek megoldási módszerei folyt. Néhány kiegészítés a Gauss- és a Gauss Jordan-eliminációhoz

Matlab alapok. Baran Ágnes. Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15

Rendezések. A rendezési probléma: Bemenet: Kimenet: n számot tartalmazó (a 1,a 2,,a n ) sorozat

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

Rendezések. A föltöltés nemcsak az r-re vonatkozik, hanem az s-re is. Ez használható föl a további rendezések

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós április 4. Széchenyi István Egyetem, Gy r

2018, Funkcionális programozás

Programozás I gyakorlat

0,424 0,576. f) P (X 2 = 3) g) P (X 3 = 1) h) P (X 4 = 1 vagy 2 X 2 = 2) i) P (X 7 = 3, X 4 = 1, X 2 = 2 X 0 = 2) j) P (X 7 = 3, X 4 = 1, X 2 = 2)

1. numere.txt n (1 n 10000) n növekvő kilenc a) Pascal/C++ Például: NUMERE.TXT

értékel függvény: rátermettségi függvény (tness function)

Skalárszorzat, norma, szög, távolság. Dr. Takách Géza NyME FMK Informatikai Intézet takach/ 2005.

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós szeptember 27. Széchenyi István Egyetem, Gy r

rank(a) == rank([a b])

Bevezetés a programozásba. 5. Előadás: Tömbök

Adatszerkezetek 2. Dr. Iványi Péter

Lineáris algebra. (közgazdászoknak)

Bázistranszformáció és alkalmazásai 2.

3. Előadás. Megyesi László: Lineáris algebra, oldal. 3. előadás Lineáris egyenletrendszerek

Matlab alapok. Baran Ágnes

Lineáris egyenletrendszerek

Gráfok, definíciók. Gráfok ábrázolása. Az adott probléma megoldásához ténylegesen mely műveletek szükségesek. Ábrázolások. Példa:

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

Permutáció n = 3 esetében: Eredmény: permutációk száma: P n = n! romámul: permutări, angolul: permutation

Diszkrét matematika II., 5. előadás. Lineáris egyenletrendszerek

III. Gráfok. 1. Irányítatlan gráfok:

Eddig csak a polinom x-ben felvett értékét kerestük

Egyirányban láncolt lista

Matematikai statisztika 1.

Adatszerkezetek II. 1. előadás

Numerikus módszerek beugró kérdések

Numerikus integrálás

Rendezettminta-fa [2] [2]

Összetett programozási tételek Rendezések Keresések PT egymásra építése. 10. előadás. Programozás-elmélet. Programozás-elmélet 10.

Kvadratikus alakok és euklideszi terek (előadásvázlat, október 5.) Maróti Miklós, Kátai-Urbán Kamilla

Felvételi tematika INFORMATIKA

Átírás:

A keres,kkel és adatbázissal ellátott lengyel honlap számos díjat kapott: Spirit of Delphi '98, Delphi Community Award, Poland on the Internet, Golden Bagel Award stb. Az itt megtalálható komponenseket nemcsak használni lehet, hanem fel is lehet tenni a saját, nyilvános használatra szánt jól mköd, komponenseinket. Jó böngészést! firkácska Érdekes informatika feladatok XVI. rész 5 67 Szabályos szerkezet5 speciális mátrixok tárolása A cikksorozat ezen részében a szabályos szerkezet speciális mátrixok tárolási módszereit mutatjuk be. A specialitás abban rejlik, hogy a mátrixok csak hézagosan vannak kitöltve, az elemek nagyrésze zérós. A szabályos szerkezet pedig abban rejlik, hogy a zérós elemek szabályosan helyezkednek el a mátrixban. Ilyen mátrixok a: ritka mátrixok háromszögmátrixok szimmetrikus mátrixok szalagmátrixok, sávmátrixok Ritka mátrixok Azokat a mátrixokat, amelyeknek legtöbb eleme -val, vagy valamilyen más, el,re ismert elemmel egyenl,, ritka mátrixoknak nevezzük. Egy n m-es mátrix memóriaigénye, amelynek minden egyes eleme h byte memóriát igényel: n m h. Ha ténylegesen csak k elem hordoz értékes információt, akkor a memóriaigény k h. Ritka mátrixok például a permutációs mátrixok. A P permutációs mátrix minden sorában és minden oszlopában pontosan egy -es áll, a többi elem. Az elnevezés onnan származik, hogy egy vektort ilyen mátrixszal szorozva a vektor elemeinek egy permutációját kapjuk. Példa permutációs mátrixra: P = 7 6-7/

Ritka mátrixok esetén érdemes a mátrixot egy rekord szerkezet vektorban tárolni, pl. az alábbi módon: TRitkaMatrix = array[..k] of record Vagy ha a legtöbb elem nem, hanem egy más érték, akkor: TRitkaMatrix = record legtobb: real; tobbi: array[..k] of record Az x és az y a mátrixelem koordinátáit (oszlop, sor) jelenti. A módszer hátrányai: A mátrix valamely x, y elemének elérése e pillanattól kezdve egy algoritmuson keresztül történik, amely bináris vagy lineáris keresés segítségével megnézi a tárolt vektorban, hogy a keresett elem éppen megvan-e, s ha igen, mennyi az értéke. Mindkét keresésre jellemz,, hogy nem minden elem esetén egyforma a keresés ideje, vagyis bizonyos elemeket hamarabb, másokat kés,bb ér el a mátrixon belül. Tehát ezen adatszerkezet elérése már nem véletlen idej. Az elérés már nem közvetlen, mivel szükség van erre a keresésre. Ha annak a valószínségét, hogy egy elem értéke ne legyen, p k-val jelöljük, akkor a kereséskori tesztelések száma: p k(n m + ) /. Ezzel a módszerrel maximum k mátrixbeli elem tárolása lehetséges. Ezt úgy küszöbölhetjük ki, hogy áttérünk az els, részben már bemutatott dinamikus tárolási módszerek valamelyikére. Egy mátrixbeli elem tárolása már nem h byte-ba kerül, hanem h byte-ba, ahol h = h + * (egész típus tárigénye). Tehát a n m h helyett k h. Ezt a módszert használni tehát akkor éri meg, ha a k h jóval kisebb mint n m h. A következ, példaprogram feltölt egy ritka mátrixot, majd visszatéríti egy ritka mátrix elemét: const k = 5; TRitkaMatrix = record legtobb: real; tobbi: array[..k] of record 6-7/ 7

function Ritka(m: TRitkaMatrix; i, j: integer): real; var sz: integer; Ritka := m.legtobb; for sz := to k do if (m.tobbi[sz].x = j) and (m.tobbi[sz].y = i) then Ritka := m.tobbi[sz].elem; break; var m: TRitkaMatrix; mr: array[..,..] of real; i, j, sz: integer; {A ritka matrix feltoltese, a legtobb elem -as} for i := to do for j := to do mr[i, j] := ; mr[, 5] := ; mr[, 7] := 5.8; mr[6, 9] :=.; mr[8, 8] := 5; mr[9, ] := 6.89; for i := to do for j := to do write(mr[i, j]:6:); writeln; {A ritka matrix abrazolasa rekorddal} m.legtobb := ; sz := ; for i := to do for j := to do if mr[i, j] <> then inc(sz); m.tobbi[sz].x := j; m.tobbi[sz].y := i; m.tobbi[sz].elem := mr[i, j]; writeln(ritka(m,, ):6:); writeln(ritka(m, 6, 9):6:); writeln(ritka(m, 8, 6):6:); writeln(ritka(m, 9, ):6:); end. 7 6-7/

Háromszögmátrixok tárolása A háromszögmátrix egy olyan négyzetes mátrix (n n), amelyben a f,átló fölötti elemek -val egyenl,k (a[i, j] =, j >i). a a an a a n ann A nullától különböz, elemek száma: n (n + ) / els, sorban elem, második sorban elem,, n. sorban n elem. Természetesen a háromszögmátrixok tárolásánál helyet spórolhatunk meg, ha a klasszikustól eltér, ábrázolásmódot használunk. Így ilyen tárolási módszer: Sor Elem Cím a b + h a b + h a b + h a b + h a b + h a b + 5 h a b + 6 h n a nn b + (n + ) (n - ) / h A b az els, elem címét jelöli, a h pedig egy elem hosszát (a típusának megfelel, byteok számát). Ez a tárolás h n (n ) / byte-ot mentesít azáltal, hogy a -val egyenl, elemeket nem tárolja. A háromszög mátrixok optimális kezelése érdekében egy akkora vektort kell deklarálni, amely mérete lehet,vé teszi a mátrix értékes (nem zérós) elemeinek eltárolását. Tehát az m: array[..n,..n] of integer;-b,l például v: array [..n*(n+)/] of integer; lesz. A vektor elemei folytonosan tárolódnak el a memóriában. Ahhoz, hogy megírhassuk a megfelel, címkiszámoló függvényeket (az m mátrix ij eleme a v tömb mely eleme lesz és fordítva) vegyük észre a következ,ket: v(index) = (i-) * n - ((((i - ) * i) / ) + i - ) + j - + ; ha egy elem címére vagyunk kíváncsiak: cím(a[i, j]) = b + h i (i )/ + (j ) h; Írjuk meg a visszafelé számoló képleteket is! 6-7/ 75

Természetesen háromszögmátrix lehet a következ, alakok valamelyike is: Írjuk meg ezekre is az átalakító függvényeket! Szimmetrikus mátrixok Egy M mátrix szimmetrikus, ha M = M T, ahol M T az M mátrix transzponáltja, amelyet a mátrix sorainak és oszlopainak a felcserélésével kapunk meg. Értelemszeren, ha egy mátrix szimmetrikus, akkor négyzetes is. Példa szimmetrikus mátrixra: 6 5 Természetesen a szimmetria függvényében elég csak az egyik részt tárolni, a másikat pedig kiszámolni. Definiáljunk adatszerkezetet szimmetrikus mátrixok tárolására! Szalagmátrixok, sávmátrixok Egy M mátrixot akkor nevezünk m sávszélesség szalagmátrixnak, ha létezik s m < n- úgy, hogy a f,átlótól m-nél messzebb lév, elemek mind zérósak, azaz: a ij =, ha i j > m Ha a sávszélesség, akkor tridiagonális mátrixról beszélünk. A tridiagonális mátrixok másik neve: kontinuáns mátrixok. A f,átló melletti átlókat alsó (i = j + ) és fels5 (i + = j) mellékátlónak nevezzük. Példa szalagmátrixra: 8 7 6 Definiáljunk adatszerkezetet szalagmátrixok tárolására! Kovács Lehel István 76 6-7/