MULTIMÉDIA AZ OKTATÁSBAN
Szeged, 2004. május 27–29.
Valószínűség-számítás, statisztika, titkosítási és rendezési algoritmusok szemléltetése számítógép segítségével Kiss Gábor, Őri István Budapesti Műszaki Főiskola, NIK, Matematikai és Számítástudományi Intézet
[email protected],
[email protected] Bevezetés A Budapesti Műszaki Főiskolán is egyre jelentősebb szerepe van az információ- és kommunikációtechnológiának, így az oktatás informatikai eszközökkel történő támogatásának is. A matematikában és a számítástechnikában előforduló fogalmakat, algoritmusokat is számítógép segítségével szemléltetjük, ezzel is megkönnyítve a hallgatók számára ezek megértését, figyelembe véve, hogy a hallgatóknak a gyakorlati tapasztalatokon túl komoly elméleti képzésben is kell részesülniük. Előadásunkban két területről mutatunk be esettanulmányt, ezzel szemléltetve a lehetséges alkalmazásokat. Valószínűség-számítás, statisztika szemléltetés MS Excel felhasználásával A matematikaoktatásban bizonyos fogalmak, törvényszerűségek megértésében igen fontos szerepe van a szemléltetésnek. Különösen jelentősége van a vizualizációnak a valószínűség-számítási modellek esetében és az eljárásorientált vizsgálatok bemutatásánál, ahol a képi eszközök hihetőbbé, érthetőbbé teszik az elméleti háttér és a módszerek lényegét. Bemutatási eszközként az Excelt választottuk, mivel fontos szempont volt, hogy a szemléltetés eszköze egy mindenki által elérhető és használható, egyszerű szoftver legyen. Az Excel segítségével mind diszkrét, mind folytonos valószínűségi változó esetén ábrázolhatók az eloszlásokat jellemző függvények. Például normális eloszlást vizsgálva a diákok maguk változtathatják az eloszlás várható értékét és szórását, és megfigyelhetik a sűrűségfüggvény változását, megtapasztalhatják, hogyan változik a haranggörbe alakja, ha csökkentik a szórást vagy növelik a várható értéket. A NORM.ELOSZL(x;várható érték;szórás;hamis) beépített függvényt alkalmazva kiszámolható a sűrűségfüggvény értéke az adott x helyen, majd ezeket az értékeket felhasználva az EXCEL segítségével ábrázolható a sűrűségfüggvény. Az alábbi grafikonon a fehérrel ábrázolt sűrűségfüggvény esetén a várható érték 400, a szórás 3. A szórást változatlanul hagyva, de a várható értéket 403-ra növelve kapjuk a vékony vonalú fekete haranggörbét. Jól látható, hogy alakja nem változott, csak 3 egységgel jobbra tolódott. Ha a várható értéket nem változtatjuk, de a szórást csökkentjük 2-re, akkor a szaggatott vonalú grafikont kapjuk. A hallgatók felismerhetik, hogy ebben az esetben a haranggörbe alakja változik: „keskenyebb”, de magasabb
114
MULTIMÉDIA AZ OKTATÁSBAN
Szeged, 2004. május 27–29.
lesz, ugyanakkor szimmetriatengelye változatlan marad. Az ábrázolás, a megjelenítés itt is segíti a hallgatókat az elvont fogalmak jobb megértésében (lásd 1. ábra).
0,25
f(x)
0,2 0,15
0,1 0,05 0 391
395,5
400
404,5
409
1. ábra Normális eloszlás sűrűségfüggvényei Az Excelt alkalmazhatjuk korreláció- és regressziószámításra is. Például számítsuk ki az alábbi táblázat x-y adatai közötti lineáris korrelációs együtthatót! Legyenek az x értékek a B10:B17 és az y értékek a C10:C17 tömbökben. A KORREL(B10:B17,C10:C17) beépített függvény alkalmazásával 0,977-et kapunk, ami a változók közötti erős pozitív lineáris korrelációt jelzi. Ezután felírhatjuk a regressziós egyenes egyenletét. A LIN.ILL(C10:C17;B10:B17;igaz;hamis) függvény megadja a regressziós egyenes meredekségét és tengelymetszetét is. Az egyes paraméterek jelentése a következő: 1. paraméter: az y értékek tömbje. 2. paraméter: az x értékek tömbje. 3. paraméter: logikai változó, melynek értékét igazra állítva a tengelymetszet kiszámítása a szokásos módon történik, hamis érték esetén a tengelymetszet értéke 0 lesz. 4. paraméter: logikai változó, melynek értékét igazra állítva, csak az egyenes meredekségét és tengelymetszetét kapjuk meg, egyébként kiegészítő statisztikai adatokat is megkapunk (meredekség és tengelymetszet hibája stb.). Lehetőség van a regressziós egyenes ábrázolására. A hallgatók változtathatják az értékeket és megfigyelhetik, hogyan változik a korrelációs együttható, a regressziós egyenes meredeksége, illetve tengelymetszete, kiszámolhatnak új x értékhez tartozó y értéket. Az eredeti táblázatbeli értékekhez tartozó egyenes a fekete folytonos
115
MULTIMÉDIA AZ OKTATÁSBAN
Szeged, 2004. május 27–29.
egyenes, ha az x=8 értékhez tartozó y-t 8-ra növeljük, a fehér folytonos egyenest kapjuk. Jól látható, hogy az egyenes meredeksége növekedett (lásd 2. ábra).
8 7 6 5 Y4 3 2 1 0 1
2
3
4
5
6
7
8
X
2. ábra A regressziós egyenes
XI
1
2
3
4
5
6
7
8
YI
1
1.5
2
3.8
4
4.2
4.8
5
Ha nem lineáris összefüggés van a két változó között, hanem exponenciális, akkor is hasonlóképpen lehet exponenciális görbét illeszteni az alappontokra, és természetesen előrejelzéseket is ki lehet számolni az Excel segítségével. [1] Titkosítási algoritmusok szemléltetése Az Informatika alapjai c. tárgy keretében a történelem során használt titkosítási algoritmusok is ismertetésre kerülnek. Ezek egy részének szemléltetése táblán vagy írásvetítőn nehézségekbe ütközik és ezáltal nehezebben válik érthetővé a hallgatók számára. A bemutatásra kerülő alkalmazás három híres titkosítási algoritmust képes látványos módon bemutatni. Caesar-kódolás Az egyik ilyen titkosítási algoritmus a Caesar-kódolás [4]. Nevét Julius Caesarról kapta, mert ő alkalmazta először a gall háborúk idején a Ciceróhoz intézett leveleiben. Minden betűt az ABC-ben rá következő negyedikkel helyettesített, tehát 116
MULTIMÉDIA AZ OKTATÁSBAN
Szeged, 2004. május 27–29.
pl. az A helyett E betűt írt le. Minden olyan titkosítást, mely a betűk fix értékkel való eltolásán alapszik, Caesar-kódolásnak nevezünk. A fogadó félnek a kapott szöveg betűit az ismert értékkel kell visszatolnia ahhoz, hogy az üzenet eredeti tartalmát olvasni tudja. A programban ezen kódolást kiválasztva egy szövegmezőbe beírhatjuk a kódolandó üzenetet, az alatta lévő ABC-n egy csúszka segítségével állíthatjuk be az eltolás mértékét. Ekkor alatta megjelenik az eltolt ABC, az, hogy melyik betűnek melyik fog megfelelni a titkosított szövegben, valamint alatta a kódolt üzenet A képen látható esetben az eltolás értéke 4, az eredeti szöveg: TITKOS ÜZENET és jól látható a kódolt szöveg és az új ABC is (lásd 3. ábra). A hallgatók rögtön látják a változást, ahogy mozgatják a csúszkát, így nem vesz hosszú időt igénybe a táblára írás, illetve a változások után az új ABC, valamint a sifrírozott üzenet felírása. A módszer gyenge pontja, hogy csak 25-féle lehetőség van, így a titkosított szöveg könnyen feltörhető.
3. ábra Caesar kódolás Monoalfabetikus titkosítás A következő lehetősége alkalmazásnak a monoalfabetikus titkosítás feltörését segíti elő a betűgyakoriság elemzésével. [3] Ennél a titkosítási algoritmusnál nem eltolják az ABC betűit egymáshoz képest egy adott értékkel, hanem egyes betűket feleltetnek meg más betűknek. Pl. 26 betűs ABC esetén 4*1026 lehetséges keverés létezik. Itt már jóval nagyobb a lehetőségek száma, ezáltal a feltörés is nehezebb. Valójában a középkorban ezt a titkosítási módszert tartották Európában a legbiztosabbnak, míg az arab kriptográfusoknak már kidolgozott módszerük volt ezen algoritmussal sifrírozott levelek dekódolására.
117
MULTIMÉDIA AZ OKTATÁSBAN
Szeged, 2004. május 27–29.
A módszer lényege, hogy ha ismert a rejtjelezett szöveg nyelve, akkor az adott nyelvre jellemző betűgyakoriság ismeretében feltörhető az üzenet. Készítenek egy táblázatot, melyben minden betű előfordulásának gyakorisága szerepel, valamint egy másik táblázatban a titkosított üzenetben szereplő jelek (betűk) gyakorisága. A feltörésnél a szövegben leggyakrabban szereplőt behelyettesítik a nyelvben legtöbbször előfordulóval, majd veszik a következő leggyakoribbat és így tovább. Amikor már szórészletek előállnak, kiegészítésükkel további felcserélt betűpárok határozhatók meg. Ahhoz, hogy a program jó közelítéssel meghatározza a nyelvre jellemző betűgyakoriságot, rendelkeznünk kell egy elegendő hosszúságú, adott nyelven írott szöveggel, mely txt formátumban tárolható. Ezt és a titkosított szöveget tartalmazó fájlt kell megnyitni, és a gép kiszámítja a betűgyakoriságokat a két szövegre és ezeket az adatokat két oszlopban megmutatja. A gyakoriságok összehasonlításával a felhasználó lépésről lépésre megadhatja, hogy mely betűnek melyik felel meg a kódolt szövegben. Ehhez csak az adott betű mellé a párját kell beírni, aminek megfelel a kódolt szövegben. A jobb alsó ablakban látható a már dekódolt üzenetrész. A még nem megfejtett részt vízszintes vonal jelzi mutatva az egyes szavak hosszát. Ha rossz megfeleltetést jelölt ki a hallgató (pl. nem értelmes szó jelenik meg a dekódolásnál, mert rossz betűvel próbált helyettesíteni), akkor a lehetősége van a javításra, változtatásra. Az ablakban rögtön látszik a megfejtett szöveg, jól nyomon követhető az algoritmus, és a már meglévő szórészletek felhasználásával újabb betűfelcserélések találhatók ki (lásd 4. ábra).
4. ábra Monoalfabetikus titkosítás feltörése gyakoriságelemzéssel 118
MULTIMÉDIA AZ OKTATÁSBAN
Szeged, 2004. május 27–29.
Vigenére-kódolás A Vigenére-kódolású titkosítási algoritmusnál 26 db, egymáshoz képest csak egy betűvel eltolt ABC-t használnak, melyeket táblázatba rendeznek (5. ábra). A titkosításnál csak bizonyos sorokat használnak fel a táblázatból. Ahhoz, hogy tudják, melyek ezek a sorok, egy kulcsszóban állapodik meg az üzenetküldő és a fogadó, és ezen szó betűivel kezdődő sorokat fogják csak a kódolás-dekódolás folyamán alkalmazni. A titkosítás menete a következő:
5. ábra Vigenére-kódolás kulcsszó használatával A kulcsszó első betűjével kezdődő sorban megkeressük azt a betűt, amely a nyílt szöveg első betűjével kezdődő oszlophoz tartozik. Az adott betű lesz a kódolt üzenet első betűje. Ezután nézzük a kulcsszó következő betűjével kezdődő sort és megkeressük azt a betűt, amely a nyílt szöveg második betűjével kezdődő oszlophoz tartozik. Az adott betű lesz a kódolt üzenet második betűje. Ezt addig folytatjuk, míg a kulcsszó végére nem érünk. Ekkor újra a kulcsszó első betűjével kezdődő sorral dolgozunk tovább. A szöveg dekódolása a folyamat megfordításával érhető el a kulcsszó ismeretében. A programban egy szövegdobozba tudjuk begépelni a kódolandó üzenetet, egy másikba pedig a kulcsszót. Ezután a fent leírt algoritmust szemléltetve a számítógép megjelöli a titkosításnál éppen használt sort, majd az oszlopot, utána pedig a kettő metszéspontjában lévő betűt, és azt beírja a kódolt szöveg tárolására használt textboxba. Visszafejtésnél a titkosított üzenetet és a beírt kulcsszót veszi alapul a program, és ezek tükrében állítja elő a megfejtett üzenetet, mely csak a jó kulcsszó 119
MULTIMÉDIA AZ OKTATÁSBAN
Szeged, 2004. május 27–29.
megadásával lesz azonos az eredetivel. A hallgatók az algoritmus minden egyes lépését nyomon tudják követni, mivel mindig kijelölésre kerül a kiválasztott sor, oszlop, illetve betű, illetve látják, hogy a kulcsszó ismerete nélkül értelmetlen szöveg áll elő a feltörésnél. [2] Összegzés A matematika és informatika bizonyos részeit igen száraznak, unalmasnak és érthetetlennek tartják a diákok. Tapasztalatunk szerint, a számítógép és a multimédia adta lehetőségekkel szívesebben dolgozik a hallgatók nagy része, könnyebben megértik az összefüggéseket, bonyolultabb számításokat, ábrákat is örömmel készítenek. Véleményem szerint a hallgatók szívesen vennék, ha több területen is lenne egyszerűen használható, tanulóbarát szemléltető szoftver.
Referenciák [1] Kiss Gábor, Őri István: Matematika-tanítás Excel programcsomaggal. Iskolakultúra, 74–80 (2003. 12.) [2] Simon Singh: Kódkönyv. Magyar Könyvklub (2002) [3] David Kahn: Code breakers (1999) [4] Ernst Doblhofer: Die Entzifferung alter Schriften und Sprachen
120