{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Első beadandó\n", "\n", "\n", "Hat feladat van, ahányat sikerül megoldani, annyi lesz a beadandó értéke, de legfeljebb 5. Megoldásként ezt a fájlt kell visszaküldeni kitöltve. Nem elég csak a válaszokat feltüntetni, hagyd benne a fájlban a függvényeket és kódokat, amit a megoldás során használtál. \n", "\n", "- Mindegyik feladat kódolásokhoz fog kapcsolódni. Felteheted, hogy minden szöveg csak a következő karatereket tartalmazza: `hun_alph=['a', 'á', 'b', 'c', 'd', 'e', 'é', 'f', 'g', 'h', 'i', 'í', 'j', 'k', 'l', 'm', 'n', 'o', 'ó', 'ö', 'ő', 'p', 'q', 'r', 's', 't', 'u', 'ú', 'ü', 'ű', 'v', 'w', 'x', 'y', 'z', ' ', '!', ',', '-', '.', ':', '?', ';']`. \n", "- **Helyettesítő ábécé** alatt karakterekből áll halmazok közötti bijekciót értünk. Ezt egy dicitionaryben érdemes tárolni, ahol minden kulcs egy egyedi karakter és minden érték is az. Pl: `{'a':'b','x':'y'}`\n", "- A programoknak úgy kell működniük, hogy a Restart & Run All parancsra hiba nélkül végigfusson a notebook és minden megoldás a megadott változóba kerüljön. \n", "- Ha valamivel nagyon elakadtok, írjatok egy emailt és segítek. \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "hun_alph=['a', 'á', 'b', 'c', 'd', 'e', 'é', 'f', 'g', 'h', 'i', 'í', 'j', 'k', 'l', 'm', 'n', 'o', 'ó', 'ö', 'ő', 'p', 'q', 'r', 's', 't', 'u', 'ú', 'ü', 'ű', 'v', 'w', 'x', 'y', 'z', ' ', '!', ',', '-', '.', ':', '?', ';']" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ " ## 1. feladat\n", "Írd meg a következő függvényeket.\n", " - az `elkodol` függvény egy stringet és helyettesítő ábécét vár bemenetként, majd pedig visszaadja azt a stringet, amit úgy kapunk, hogy a bemenet minden karakterét lecseréljük az helyettesítő ábécé szerinti párjára. Ha egy karakter nem szerepel az ábécében akkor ne változtasson rajta a függvény. Pl: `encodestring(\"abbac\",{\"a\":\"x\",\"b\":\"y\"})=\"xyyxc\"` \n", " - a `dekodol` ugyanazt csinálja visszafelé, tehát egy elkódolt üzenet és a helyettesítő ábécé ismeretében megadja az eredeti szöveget. Helyes megoldás esetén `dekodol(elkodol(szoveg,abc),abc)` az eredeti szöveget adja vissza. \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def elkodol(szoveg,abc):\n", " #todo\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def dekodol(szoveg,abc):\n", " #todo\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. feladat\n", "Az alábbi szöveg a cézár kódolással van elkódolva. Mi lehetett az eredeti szöveg?\n", "\n", "A cézár kódolás a következőképpen működik. Választunk egy egész számot, hívjuk ezt k-nak. A titkosítandó szöveg minden betűjét lecseréljük az ábécében k-val később álló betűre. Itt is a fenti `hun_alph`-t használjuk ábécéként, tehát csak a karakterek és a szünet számítanak. (Ha kifutunk az ábécé végén az elejétől kezdjük újra a számolást.) Pl ha `k=5` és `szoveg=\"csíkos zebra?\"`, akkor a az elkódolt üzenet `\"gűnóqű:.ifüec\"` \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "titkos_szoveg='outkurqukuscázlóizá.ho;uqe'" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. feladat\n", "Az alábbi `titkos_szoveg3` is egy behelyettesítő ábécé segítségével készült. A cézár kódolással ellentétben itt semmit sem tudunk arról, hogy milyen helyettesítő ábécét használtak. Szerencsére azt viszont tudjuk, hogy az eredeti szöveg tartalmazza a lenti `biztos_szoveg` részletet. Mi lehetett a teljes eredeti szöveg?\n", "\n", "(Ne lepődj meg ha a megoldás mondatai nem egy folytonos szöveget alkotnak, egy nagyobb szöveg véletlenszerű darabjait kódoltuk el.) \n", "\n", "(Segíthet egy olyan verziója a `dekodol` függvényednek, amely nagybetűvel írja be azt, amit dekódol és kisbetűvel, amit nem. Így nem kevered össze, hogy mely részek vannak már dekódolva és melyek nem, amikor egy részleges helyettesítő ábécét tesztelsz.')\n", "\n", "Megoldásodat - az eredeti szöveget - mentsd el a `megoldas3` változóba! \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "titkos_szoveg3='ígaücúsöjosöúlfs,úűlcdíúígo csúcííű-fííf,úfsöújofsú űobáu őfúqo-lűsyíúnfífííf,úubúűáúfofbáúűapaúsöjdöjo jünfúduác,úrgsöűdúvyíbáűügádű úwbcdíűaűdúncíuác;úlűvü,úlcüédúlfsayííűúűúífaf úayővyőűdúiadcújwwbuíúlc pbíúdűsö-őmbűdúlűsyőűd,úzjaíylűüúafa udf úbáfddöfbúcdümaűívű,úbúdűsözfveúafsudöcíúcaöúbáp űaúőcáíűívű:úfáúlusúwbű úlfrfídf,úüfúlgbíúvéúűúdűsövű:úgoühíúűúrhlzűo űbúbúryímaúlfsíylűüvű;ú-úlcíúwbcdyabáúlgbíúlc apb?úvűv,úüfrgsöúőcobáúnuaf !úfáfoúafa füúngadű,úluscbúlfsjadudf .ú-úbfllcúőűv!úűáúdu cúűúímaűvügdbysű,úrgsö,úrűúdéúnfbáuaöf,údéúűúőyígobysű:ú cbfshícúlűsyí,úbgrűbfúzuaíbuíf ,údflúnyac úőfaéafúzűo űbg dű úuíf .úbg úőgaögdsybúmíydúnusofú czyoűünű,úafífafxiaíúlc apbúűáúmíwydúfsöúxűüoű;úqocúduxúvjíí-lfdíúgíí;úűbbágdö,úaydöúubúzuozc,úlc apbúduáífúé fí,úfaúcbúmdíűúduádc.úűayzissfbáífíífúzfvuíúdűsöúőydűíőűd,úlfoíúfsöúxudáfúcbúdcdwbúiofbúíűobgaöyőűd,úxfücsúdusöúdűxúpíűúwbű úsglőyíúlcíúfnfíí,úlfaöfíúnydügoganűúqízuafdúbáfürfífíí.úlgbíúrűaasűbbúbáűnűloű,úvylőgoúbágasűúőfdwf:údfbáfúífüüúfa,úcííúnűdú cafdwnfd cafdwf;úüfúűúbáyáűüc űíú jddöiúrfaöiííúrűsögl:úlfscbbám ,úlcnfaúlgbíúlűsűbú fünflúnűsögd.únyaícsúfaafd fádu úőfddfúűúreúbágasű,úrűúdöfosudú maűwbűú cúdflúbáyoűüíúngadű:ú hniaúdfünfbúmsöűd,úűúrűolűíúlfsfbíf,úüfúűúőfabfvuőfúwbcrgadcúúafrfídf.ú'\n", "biztos_szoveg='fejét nagy bánatban, mert egy pénze is nincs üres tarsolyában,'" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4. feladat\n", "Készíts elemzést a magyar nyelv betű és betűpár gyakoriságáról. \n", "- Keress ehhez egy legalább 100000 karaktert tartalmazó magyar szöveget. (Ne használj olyat, ami a gyakorlaton szerepelt.) \n", "- Mentsd el a szöveget ennek a notebooknak a mappájába `szoveg.txt` néven. \n", "- Olvasd be a fájlból a szöveget.\n", "- Változtasd kisbetűssé és szabadítsd meg a szöveget az extra karakterektől (amik nincsenek a `hun_alph`-ban). \n", "- Ezután számítsd ki a `hun_alph` minden karakterére, hogy hány százalékban szerepel a szövegben. Majd ugyanezt számítsd ki a `hun_alph` minden betűpárjára is (\"aa\",\"ab\",\"ac\",...). \n", "- Az eredményt mentsd el a `megoldas4betu` és `megoldas4betupar` változókba. Mindkettő legyen egy lista, mely (karakter/pár, gyakoriság) elemeket tartalmaz és rendezve van gyakoriság szerint. \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Ne felejtsd, hogy a hat feladatból elég ötöt megoldani az ötöshöz" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5. feladat\n", "Az alábbi `titkos_szoveg5` is egy behelyettesítő ábécé segítségével készült. Itt semmilyen extra információval sem rendelkezünk, csak annyit tudunk, hogy az eredeti szöveg magyar nyelvű. Mi lehetett az eredeti szöveg? \n", "\n", "Szerintem szórakoztatóbb, ha teljesen magadtól oldod meg ezt a feladatot. Viszont ha nincs semmi ötleted, vagy elakadtál, akkor az alábbi szöveget visszafele olvasva találsz egy kis segítséget. \n", "\n", " - .ketíges nesevízs ,tliame yge jrí ,degésküzs nav ergéstíges bböt gém aH .takavazs divör a luádlép detehrűzsiK .tíges takos si azssoh kavazs a rám nátuzE .lavásálálatik retkarak ' ' a luádlép dzeK .lavásálálatik kűteb a técébá őtísetteyleh őlelefgem yge lef stípé nasotazokoF .támázs ketese za detehtíkűzsel noygan lezzE .ttüyge llá mesahos etnizs rápűteb kos ,tíges si lánkoráp űteb a zenaygU .kankairokayg ébsévek a gidep kairokayg ébsévek a ,gem kenlelef kenkeretkarak irokayg nebvleyn raygam a keretkarak irokayg tti za návliyN .kenkiylem gem lelef űteb kiylem ygoh ,inlálatik gem dlábórp gidep djam ,si tti tákitzsitats ólnosah zohtadalef .4 a stízséK\n", "\n", "Megoldásodat - az eredeti szöveget - mentsd el a `megoldas5` változóba! \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "titkos_szoveg5='ózlhöíilnöéöptn,öbiffjtöéöpúnzl,öföukbkjkuöqiővinnöéöpkőzp,öbéökvh-kvhönklröíúcúőöírjknöqúlbtjnépöéöptnp í rv.öilhéuöózlhöíilnöéöptn,öbivhöéöuéeöfköl nbénnéöókvöükuuköqzuhkföéőa n,öafépöfovéőérözőnkpölkökvhöcéőéürvöéöptnvúcúőük,öföéókccrvölkzőnkp,öqyíknöféőséfjninnépöéöukcíkföpúíkpöpújúnn.öéöptnöfúnznöózlhzükuölépinnökvhöafél cöéöüzp pöukójknfzvzüwl;öukóörckíéldöafél c,öafépöükí uciőlinn:öéöczcéuhé,öéjöúőkvöéuhéüzpéöíéléórpiőöqkskfnöovőinnöéöptnüé.öéöptnöwflépdr,öéöjúlcöüzp p,öókvüéő npijnépöríéczpéríél,öózvöéöőipiuf vinörföprckőgnknnzp,öföéöptnöíkuczvkrukpöukíkjnzpöklöwpkn.öekcrvöóruckuösklöéőőéöíéllinn,öbivhöéöükí uciőlinnépöukóözőrpöüköéöíkuczvkfpkczffkl,öízvlkvkfkuöqúlöépéős pöynuröf niőq sopénöéöptnöózlhzüku,öébilörvkuösdlözőkjnzpöóévopénöéöfj őéjqúlcúuö-ögvhöukíkjnzpöéöprovőd,öukcíkföpúíkpkn.öéjöúőkvöüzpéczcéuhéökvhfjkőöuhép üéöíknnköéöírl vin;öqzlrvöqúlbtjénnéöóév nöéöírjkfíúcúőőkl,öcköó őöéöptnöpújkekön s uöilhéuöíépgndöírl viff vöíiln,öbivhöüklkq scolnöéöfjkók;öfjkőkuafzőköózvörckszükuöprönocinnöovőéuröéöíúcúőüwl.öózvögvhörföuévhö őénöqrjknknnöéjöonéj fzőn:öovő föpújükuöprqraéógninnöéöüip s n,öföb őióöuéervöüiőivénuröpkllknn.öéöqkunröírl vődlögvhöukóöfjkőjknnöfipönéeéfjnélénin,öcköéjnönocné,öfönocnéöéöafél cséörf,öbivhöukóöéöptnöéjökvzfjöírl v.ölkbkn,öbivhöéöczcéuhéönocinnökvhkn-ó fnöéöírl vődl,öcköbéöpzőckjnzp,öafépöyóóúvúnn-byóóúvúnn,öukóöqklkln,öízvylöó őöukóörföpzőckjnkpönwlköfkóórn.ö-öpúízőöíévh,öüonéözföqkőnklókfö üő jént!ö-öóiucn pöfjkózüköéöb uhéíknr,öqrénélöjúlcöüzp p.ö-öéöeiőiunhércöekcrvöíéléókuuhrkuöő cöynúnnkp!ö-ölkbknö-öóiucnéöő öéöczcéuhé.ö-öcköéjökvhrpukpöcő vépwöíéuöéöqkszüku.öéöjúlcöüzp pöóéql uöü óolnépöő ,öfkbivhöfkóöíilnöguhypőköéöqklklkn.öéjn uöklqruniőgninn pöéöpzeypkn,özfölkbtjdcnépöéöptnöózlhzük.öcköéjörqstöíéőéuvhipuépöbgjinnöéöó sopöénndl,öéórnöbéllinnép.öpzuhkfpkcíköuhtsnivénn pöb nfdöl üopénöódőrp ln pöóévopén;öóruckvhrpöéjnöbrnnk,öwöéj,öépröcő vépúíknöbiőcijöéöqkszüku.ökvhfjkőöafépöklafúuckfkcnkp,önmuwcíköbéllvénnép,öföókvpzőckjnzpöéöczcéuhsopndl,öórőkörföüyfjpzp,öfönolésciupzeekuöóröéöaficéöéjöéöcő vépw.ö-önyucúplwöbilór,öqkscklkóbkjörllw!ö-öqklklnköéöczcéuhé.ö-öilhéuöfjze,öbivhöklöfkönocióöóiucéur!öíéléór,öéórnöóévoupövhúuhúőmfzvzőközförőrvhkrupöüiffjtf v őéöbiőcijoup.öckönúüüknöukóöóiucip,öukörföqévvéffénip!ö-öui,öukóözuöbiőcijió,öéjöürjnif!ö-öóiucnéöéölkvprfküürpöüzpéríéczp,öépröéölkvfjkőzuhküüöíilnönkfnízőkröpújúnn,öcköéölkvőtnéüüörf,öfjkvzuhpk.ö-özeekuöukpkóösoninnöíiluéöilhéuöuévhöpruaf?öukóörföúőyluzpöilhéuöbilóruép,öéóröó fipuépöüiffjtf vinöfjkőkj!öafkeeknöfköí vhióöő .özuöafépöéőőéöí vhió,öbivhökvhfjkőöqúlsonbéffépöéöptnöp í s rv,özföfjznuzjbkffkpöéöírl vüéu.öórlhkuöfjzeörfölkbknöicéqúuu!ö-ös őnöonénöéös őénléuzőnöklöuköbévhc!ö-örunknnköéöüúlaföczcéuhé.ö-örnnöéöptnöózlhzuöóruckuprnörfókőfj,öklrvéjicfjöóruckuüku,ökjöéjöinnbiuic.öéöíúcúőnwlöekcrvöwőrjpkcszl,öókőnöévhiuuhióbén.öföbéöózvözeöüwőőklöpkőyluzlörföüklk,öprkfbknfjöüklwlk,özföúffjknúőúcöóruckuöafiunicén.öürjiuh,öukóöóruckupröilhéuöfjkőkuafzf,öórunözu,öéprökvhöüipéqraéóö ő uöfjéüécolnéóöókvöéöíúcúőüwl.ö-öyóó!ö-öyóóúvnköéöprfíéőéuvh,öfökjötvhöbéuvjinn,öórunbéöóévoupqésnéöéjnöóiucéu :ö-öybyó!öcköafépöukóöókunöpröéöqkszüwl:öórlhkuösdörfölkuuköprerfléunéuröéöírl vüé,öórlhkuöfjzeölkbknöicéqúuuöéöjúlcöqm!öó fuéeöőkvvklöéjn u,öéórpiőöéöíúcőúnölküiaf ninn pöéöptnüé,öéöprfíéőéuvhökvzfjönkfnzükuöókvőkókvknn,örjvéninnéuöí őné,öbivhöéöíúcúőönklkókőylsúuöígjjkl;öéppiőöuévhöklbén őij ffélöüklkovőinn,öókvléeolnöéjöéls üéu,özföqúlbtjénnéöóév n.ö-öbm,öéjöúőcúv!ö-öózővklwcúnnöéöpkőnzfjlkvzuh,öéórpiőöprúunúnnköéöírjkn,özföókverlléuninnéöéöléeoldöíéőéuvhin.ö-örlhkuöaftqöüzp nölkvaftqéüüö lóióüéuöfköl nnéó!ö-öon uéöbésgninnéöéöqéarewszn,öföbésfj löbgsé,öbivhöéjörqstöíéőéuvhöinnöukóölklnköbél l n,öcköfjkőkuafzfkuöókvókukpyln,öükovőinnökvhöafél uüipiőöfmőmszük.öéórpiőöprqtsnéöóév n,öqúluzjknn:öéöfjzlkföafél ulkíklkpkuö nfynúnnöéöuée,öföéöprföíéőéuvhiföüzpéötvhözőkjnköóév n,öórunöóröéöőkuvknkvökőcwüku,öébilöéölióüipöőzfkruö nfjmőwcrpöéöuéefov ő.ö-öcköfjzeörckqúuu!öfippélöfjküü,öórunöéöptnüéu!ö-ö lléegninnéöókvöéöüzpé.ö-öfjgíkfkuörnnönúlnkuzóöép őöéjökvzfjözlknkókn.ö-öafúuckfkuöqkpycnökvh-pznödő n,öklvhúuhúőpúcúnnöéöafél ukőcwüku.öcköéjn uönií üümjnköéöpgí uafrf v.ö-öovhéuöórölkbknökjkuöéjökőcwuöntl?öukóö llbénipöókvörnn,öbéöó őörc rvöklsoninnéó!öéjjélöukpríkfklpkcknn,özföqyővzuönií üürucoln;önéleéln,öébivhöafépöruéröügőn p.ökvhfjkőöafépöprzőnöéjöiőfj vtnőé,öébilösdlöókvrjjéfjninnéöéöuée,öföqkbzőőkölrfjnkjnköéöqúlíkőwcwöeiő.ö-ökjöéjn uöéöfj őéjqúlc,öukóöéöptnöukcíkföpúíkr!ö-öóiucnéöklzvkcknnkuöéöprfíéőéuvh.ö-öfjrunköfipörföó őöéösdüdl.öókvzőpkjknnöéjö őipfjzlők,öébilöukqklksaföókvövdlhébgőöírő vjinn,öéjiuöntlöüicjé-öókvövéléviuhéfúízuhörllénijinnö-öóraficéöeióeé!ölkepköaféeiuvinnöéöírő vipöqúlúnn,öföéöprfíéőéuvhöéjnörföírő vuépöuzjnk,öfj őuhőéöpéeinnöírő vuép.ö-öd,öbéözuörföfj őuhőéöpklbknuzp!ö-ö bgnijinnöéöprfüzpé.ö-öyóó,öckövhúuhúőmörfökjöéöírl v!öuhilaöuéeinözföuhilaözsfjép nönúlnúnnöafkuckfövhúuhúőpúczffklöéjö őipöeéőns u.özlklkóőköukóöíilnöviucsé,öpkőyln,öéókuuhröpkllknn.öéöprlkuakcrpöuéeiuöéjn uöéjnöóiucnéöóév üéu:önií üü,önií üü!özfötnőéöpkln.öckönél lbéninn-köfjküüknöéöírő vifö őipeéőnu l?ölkvqúlsküüökvhön őfén,ökvhöprfíéőéuvhin,öíévhöuzb uhösdpkcímöjúlcöüzp n.ökvhözsfjépéörfókőwföbéuvipénöbéllinnöéön íilüdlö-öéjnöfksnknnköüklwlk,öbivhöíélébilöéöpúőuhzpkuöénhéqrérönéuh juép.ö-öd,öcköfjzeöéjözlkn!öcköfjzeöklbévhuröéöfúnznöponén,öafél ukőcwükuöerbkuur,öqiőődöeiőüéuöí uciőilur,öírő vifö őipeéőniuöklózlpkcur!öcköafépönií üü,önií üü!ökvhöprfíéőéuvh,öíévhölkvél üüözvhöjúlcöüzpéöbr uhjrpöéjörvéjröüilcivf vióbij!öéönkőózfjknöfjzefzvkrökvhóévopüéuöukóöüilcivgnéuép.ö-özföókvrunöqúlpúnúnnköéjötnrléeon,öföókunönií üü.öniafivdföőznőközőn,ökvhöu céföúíkjnköndöeéőns őé.öukóöfip rvöviucilpijinn,öqkskfnöovőinnöéöndüé.ö-öénndlönéőnoup,öüwőrvö jrpörnnöu loupö-öóiucn pöéöndüéuönéuh jdöüzpéénhéqrép.ö-öck,öekőfjköfjgíkfkuöl nsop,öóiucéuoupöfköpkllö-öocíéőréfpicnép.ö-öpkvhkcörqstöíévhöbéséciu?öcköbrfjkuöóruckvh,öép őökj,öép őöéj:örfnkuöbijnéöóru loup!özföórucs őnöókvörföbgín pöéjökfnröafél cröbéuvíkőfkuhypők.örfókősypösdlöéöüzpéafél cipökfnröbéuvíkőfkuhkrn:öókvbéndöüojvélióóélöqtss pökvhbéuvtöpéőcélopénöéöízpiuhöprföbéuvip.öéöbéuvíkőfkuhöfjyuknzükuöukóöfjilv lnépöqklöqőrffgnwpkn,öckörnélöíilnöüwíku,öprrbénn pöíilué,öbéöpkcíypönéőnsé,öép őöéjökvzfjönéíén.ö-özvö lcsiuöükuuknkpkn!önií üüókvhkp!ö-öütaftjinnönwlypökvh-pznöuéeöótlíéöéöprfíéőéuvh.öukóöíilnöóéőéc fé:öórucrvöéöfjküükn,öórucrvöéösiüüénöpkőkfnk,öórucrvöó föírczpőköbtjnéöéöfjgík.öl nnéöéöqkbzőkuöfjreiőp jdöafrllévipén,öl nnéöéöbélí uhöfovéőtötsbilcén,öéöqklpklwöuéein.ö-öózvöórucrvöéöptnöózlhzuöíévhip,öafépökvhöfippélöuévhiüüöptnöózlhzuö-öóiucnéöéöprföíéőéuvhiföüzpé.ö-öózvöóévéféüüőéöpgí upijió!öéccrvöukóölkfjöuhovnió!ö-özföéórpiőönklwükuöíilnöéöbilc,öéjnöviucilnéöfjkvzuhpk:öb nbéökjörfökvhöíúcúő,öéórnölkkőkfjnkukpöéöqúlcők,öb nbéöküüköpkllöüklkovőéuió,öbivhöózvöóévéféüüőéözőskp.öíévhöéjöéöó frpöíiluéöéöíúcúő,öéórnöuéeuépöukíkjukp?öórlhkuöuévhözföqzuhkf,ökjöíéléókuuhryupknöqúlönocuéöbtjuröéöóévéfüé.öafépöklöuköfjéléffjéóöéjöélpélóén,öéórpiőöüklkoviőbénip!öd,öóraficéöqzuhkffzvknözőjkpöéöqkskóüku!öéjnöbrfjkó,öéöcő vépwöfkóö őéfjnökuuhröqzuhn!öcköéjözuöqkskóükuöukórvkuölkbknöcő vépw,öukóörföü uió:öafépöqkl,öqklöéöóévéfüé,öéöqzuhük!öügjióöéjökőwóüku,öózvrföqzlkpökvhöprafrn:öuévhöq üéöí vióöéöqksfjzókn,öcköqwöéöü niőf v!öklwők,önií üü!ökvhkukfnöéjöiőfj vtnőé!öukprí vinnöb nöéjötnuép;öfkőzuhkuöüéucopiln,öébivhöafépönklnöéöóévéöqésn s ndl.öbéóéőiféuöprzőnöéjöiőfj vtnőé,öéóklhukpöpznöfjzlznökóükőkpöb jéröuzekfgnknnkpöük,öföpkőnkpöjúlckllnkpöpújúnnyp,öírő vifpkőnkp,öíknkózuhkfpkőnkp.ökvhöp eifjné vh föfjzlzuöókverbkun,öprafrnöprqtsnéöóév nözföpúőyluzjknn.ö-öcköfipqzlkönkőkónózuhözlöéöqúlcöb n u,öfözuöózvöéöukíypknöfköbéllinnéó!öórlhkuöuévhözföórlhkuövéjcévöéöírl v!öürjiuh,öpúőylöpkllöuzjukóökvhöprafrn,öukóöíkfjnkvklbknkpökvhöbklhüku!ö-özfökvh-pznöovő ffélökvhöuévhöp eifjnéqksö őuhzp üéuönkőóknn.ö-ödöckövhúuhúőmöjúlcörnnöórucku!ö-öqklkflkvkföóiucéuré,öuévhiuösdlönoció!ö-öfjdlélnöókvöéöqksköqúlúnnökvhöp eifjnébkőuhd.ö-öéjözuöp eifjnélkíklkóöéölkvuévhiüüöókffjköírczpku.örvéj,öbivhöéöírl vöntlfdöqklznöklnépéőséöklwlkó,öcköukpkóötvhrfösiüüéuönknfjrpöéjöruukufwöqklk.ö-öpin,öpin,öpin!ö-öbéllénfjinnökvhfjkőöafépöéöpújklypüku.önhtpipözőpkjnkpöéöp eifjné vh fbij.önrekvnkp,öpéerőv lnép,öókőnözeekuöküzcörcksköíiln.öéjökvhrpönhtpuépösdöfjkóköíiln:öókvl nnéöéöbkőuhdn,öföicéí vinnöbijj öéöafwőzíkl;öéöbkőuhdölkkfknnöéöqúlcők,öinnöpoupiővinn,öuhtsndjpicinnöpznfzvükkfknnku.öéönhtpösdlöfjkóyvhőköíknnk,öklwfjúőöéjökvhrpöfjkózíkl,öéjn uöéöó frppél,öókőnöklpzejkluröfkönocné,öórnwlöóijivbén.ö-ökllkukóöfkóóröőiffjénöukóöqiőőélö-öuhovicinnöókvöéjn u,özföó őöí vnéöíiluéöfjznöéöafwőzíkl.öcköéöíéőéuvhöqivnéöóév n,öföbrőnklkuöéönhtpöklzöovőinn.ö-öfjúíknfzvkfkörföíéu!ö-öíknnköqiunildőéöéönhtp.ö-öl ó,öbivhön óivéns pökvhó fnöéöőtnöqzővkr!ö-öviucilnökvhkn,özföqépzeuzlöbévhnéöwpkn.ö-öü uióörfözu!ö-öírvéfjnélnéöóév n.ö-ötvhfkölknnöíiluéöklzvöéöqzlöqivéóőéöfk!ö-ögvhöízlkpkcnkpöéön őférörf,özföuhióüéuöiczüü llnép.ö-öyvhkföíilnéó!ö-öcrafzőnköóév nöéöp eifjnébkőuhd.ö-ölkvqiuniféüüöéölzlkpsklkulzn.öuiöcköóifnösúuöéöukbkjk:öqúló fjuröéölkíklkóők!öbilörföíéuöéöürőnipió?öéöprfíéőéuvhöfésu lvénné,ökvhynnöfie upicinnöíklk.öúőyln,öbivhöfjilv léninönkbknknnöukpr,öéórpiőöqkőnklókfö üő jén íélöklőréfjninnéöókllwlköéönhtpin,öfökjnöókvörföóiucné.ö-öbivhözőnrökjn?ö-öuzjknnöő öózlnénléupicíéöéöbkőuhd.ö-öéjöyvhkffzvkóöókunknnöókv,öéölzlkpsklkulznkó!öü őöéóröéjnörllknr,öúuöklzvvzöpkllkóknlkuöl ní uh,öcköb nöukóökuukpöpúfjúubknkóöéjözlknkókn.öcköóifnöó őöfjkőknuzpöjéíéőnéléuolöerbkuuröéöürőnipióiu!özőjkóöó őöéölkíklkóörllén n!öl ó,örnnbiuörföíévhip!öuruaföuévhfjkőmüüöciliv,öórunbéöfés nöürőnipéöíéuöéjökóükőukp!öuiöcköqklsküüöpkllöpkőyluúó.öqklsküü,ötvhöürjiuh!ö-öviucilnéöéöprfíéőéuvh,öéórpiőöéöbkőuhdöuévhöukbkjkuöqúlpkaókővknnöéöürőnip őé.ö-öórucuh séuöqklsküü,ökvhőköqklsküüöí vhépijoup.öckökjöéöfjkvzuhöbkőuhdöóéöklzvvzöőiffjpkcím,öürjniféuöéjörskcfzvnwl.ö-ökjkuöklnmuwcúnn,öföókvrunöqkluzjknnöí vhépijíéöéöóévéfüé.öéöóévéfüéu,ökvhöeéőéfjnkóükőöb jéönknkszuövdlhéafél cöqzfjpkln;öéövdlhééeéöpruuö llnöéöqzfjkpöfjzlzu,özföbéőf uhéuöpklkekln.öd,öórlhkuöóévéféuölépuép!ö-öviucilnéöí vhépijíéöéöprfíéőéuvh.ö-öbéözuöicéöqúlpkőylbknuzp!öéöeéőéfjnb jüéuöpznöqrénélöcr pölépinn;öéjökvhrpöpúlnwöíiln,öéöó frpönkőózfjknütí ő.öéöpúlnwöfjgíköírffjénypőújnköéjökvzfjöírl vin,öföéuuépöóruckuönkőkónózuhzn,öéönkőózfjknütí őöekcrvöpzjüköíknnk,önéuoló uhijné,öbéöpkllknn,ögjkrőköfjkcnköéölkvéeődüüölzuhkpknörf.ösdpkcímözföckőzpörqstöíilnöórucöéöpknnw.ö-öicéöuzjj,öinnöléeolökvhöíéőéuvh!ö-öpr lninnöqklöéönkőózfjknütí ő.ö-öfjzeöezlc uh,ökjnöferőrnofjüéönkfjkó!ö-öbrfjkuöó őöíéuöpznöezlc uhic!öbévhcökjn,öfjkvzuhn,öbéccözlíkjjköéöírl vin!ö-öpzőnköéöpúlnw.ö-öcköéórpiőökjöilhéuöafic léniféuöőtn!ö-öóiucnéöéön őfé.ö-özeekuökjzőnöbévhcöéöüilcivnéléun!öózvöbéöcő vépúíknönél lu upöéöqkszüku,öéppiőöukóöóiució,öóévéóörföfkvgnkuzpöókvqivur.ö-öcő vépúíkn?ö-ö óolnöklöéönkőózfjknütí ő.ö-öuiönköéjn uösdlönocicöéönkőózfjknőésjin!ö-önoció,öíévhöukó:övhúuhúőmöéöuzebrn,öbivhöuzóklhrpöíéőéuvhiföüzpé,öéölkvőtnéüüörfnkunkőkónózuhk,öcő vépúíknöbiőcijöéöqkszüku.öéöüzpéöafépökuuhrnöbéllinn,ökjnörföafépöqzlrv-ókccrvözőnknnk.öéöpznösdöüéő nönií üüókun,öföéöprfíéőéuvhöókvókukpylnöéöferőrnofjbél lndl.ö-öl ó,öwpörföéöcő vépwőwlöükfjzlnkpö-önmuwcúnnökl.ö-öfjkőkuafk,öbivhöéjözuöqkskóöukóöőksnörlhkuöpruafkn,öókőnöózvöüésnöbijuéöő ó.öéöb jnknwuöéövdlhééeéöbéuviföpklkeklzfüköpkjcknn:öipnéndöklwéc fnönéőninnöqréruép,öéprpön ninnöafwőőklöü óoln pöéöpkőnükuöfzn ldöpznörqstn.ö-öéjökóükőöéölkvklürjépicinnéüüönkőkónózuhöéöqúlcúu!ö-öpkjcnköklwéc f n.ö-öbéllvéff nipöafép,öbivhéuös őnéns pöéöafwőypkn,öekcrvöfkóóröíklksköéuuép,öéórnöóiucéuép,öbrfjkuöózvöafépöpklkekluröfkönocuép!öföózvöéjnöókőrpö llgnéuröóévopődl,öbivhösdöfjduipip!öekcrvöóraficéöuhklí,öéórnöükfjzlukp!ökvhuéeröőkeylzfőköó őöukóözőnrpökvhó fn,öókőnöinnöó föuhklíös ősé.öóröekcrvöéjökvzfjöírl viuöüilcivoloupöéöuhklíyuppkl,özfjépiuözeekuötvh,öórunöéöóklkvöczlröiőfj vipüéu.öéjn uöéjökóükőkpöőkeyluröfkönocuép,öíéléóröíiuénuépöukíkjknnön piló uhiuöőiüivuép,öföéöuhépopénöfjkvrpöőésné.öbéöafépöő viucilip,öízvrvqonöéöbrckvöéöafwőúóúu!öürjiuh,öókvlkuuköéöírl vökóükőkpöuzlpylörf!öfkóóröfjypfzvyupöő sop!öéöüzpéöókvöéövrlrfjnéöfippélöqiuniféüüönkőkónózuh!ö-öókvpéedöükfjzcöíiln!ö-ölklpkfkcknnöéöprfíéőéuvh.ö-öórlhkuöbénélóéföqzőqrtöéjöicéqúuu,öföórlhkuöóévéféuönőduil!öózvöfkuprnöfkóöl nnéóörlhkuöóévéföeilaiu!öföózvötfjurörfönoc!ö-öpr lninnöqklöklőévécnén ffél,öéórpiőöéövdlhéöklőovéfjpicinnöéöb jnknwőwl,özföprnkőskfjnknnöfj őuuhélöfjklnköéölkíkvwn.öéövdlhééuhéöinnóéőécnöéöqzfjkpüku.öókfznöóiucinnöéöqréruépöéöczlröóklkvöiőfj vődl,ökvhrenióődl,öéöugloföírjzőwlöókvöéöeióe förfjéeődl,öéóklhöíéldf vifönkőgnknnöéfjnélöéövdlhéuzeukp.öéöprfüzpéö lózlpicíéöbéllvénnéöéöókfzn:öfibéfkóöbéllinnöózvöéőődlöéjöiőfj vődl.ö-öklöpkllösonuióöicé!ö-öóiucnéöfdí őivíé.ö-önél uöklíruuköéövdlhéöíévhöíéléóklhrpöqré.öókvb l lu óöéöfjgíkffzvzn.öd,öbivhöí vhióökvhrenióüé,öföklörfösonipöürjiuhiféu,öbrfjkuöókllzóöfjkvwcúnnöéöfjkőkuafk!öéöí vh,öéóröéöfjgíkóükuöléprp,öfj jfjiőönúüüknöző,öórunbéöcő vépúíknöőksnkuköéöqkskó!örvéjéöíilnöéöprfíéőéuvhuép:öéjöíilnöéjöwöcő vépúík,öéöfjyunklkuöí vh,öéöfdí őv föqúlqklz,öórucöóévéféüüőé!öqzuhlknn,önyucúplúnnöéöfjgízükuöéöí vhépij f.öózvöízvrvöfköviucilné,öéórpiőöókllknnkönkőóknnöéövdlhé,öéöbénélóéföqzőqrt.öókverlléuninnéöéöqmükuöylcúvzlwöüzp n,öí vinnökvhknöéöafwőzíkl,öföukóözeekuövhúuvzckuöókvőévécné.öéöpkózuhöafwőöüklkí vdcinnöéöfjkvzuhöprfüzpéönkfnzük,öfrígninnöókllknnköéöfjzl,öqzlklóknkföíilnöéöőkeylzf,ö-öcköőkeyln!öéöóévéfüéöőkeyln,ökvhrenióöqklzöürjiuh őé;öqzuhlknnöéöfjkók,öórunöéjöklkíkuöl uv.ö-öpíép!ösés!öéöprfüzp uépöízvköíiln.öcköbií ölknnöéjöéöafkeeöl uvöéöfjkózüwl?öqklrnnéöéöuéefov ő,öprlienéöéöcő vépúíknöéöprföíéőéuvhiföüzpéöqkszüwl.öbií öírnnk?öuköéönkőózfjknnocdfnöpzőckjcöókv,örup üüöéöpúlnwn:öwöóéscöókfzlöukpkcöéöbkőuhdődl,öókfzlöéövdlhéafél cődl.öviucilpijjöafép!öéöbkőuhdüdl,öéöőtnöbkőuhdüdl,önyuczőerlléuvdön óéc;öéövdlhéafél cöbkvhkpkn,önkuvkőkpknöőkeylö n,öéöókffjröéqőrp üéuöókvnklkefjrp,öföiuuéuöókvnél lséöéölkvkvhkukfküüöonénöbéjé,öéjözfjépröiőfj vüé,öéöóévéöqélos üé,öéöóévéöb jnknkszők!öilhéuökj,öórunöéöókfk,öekcrvöíéldörvéj!öbéöókvpzőckjkcöéönkőózfjknnocdfn,öwöfkönocöó fnöóiucéur,öórunöéórnöóévécörfönocfj,öéórnönolésciuöfjkókccklöl nn l!özföéöcő vépwöéöüzpéöqkszüwl?öéjöbiíéölknn?öpkőkfcöéöuéeüéu!öuzjjöüklk,öbéönocfj!ökőwföéöqzuhk,özfövhúuvköéöfjkóyup,övhúuvköébbij,öbivhöókvl ffopöéöqúlcöíéléókuuhröafic s n.önél uökvhfjkőöóéscöfrpkőyl,öföéjölkfjöéölkvfjküüöókfk.ö'" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 6. feladat\n", "Készítsd el az Enigma rejtjelező gépet pythonban. Az Enigmát a Második Világháborúban használták a németek. Körülbelül úgy nézett ki mint egy írógép, amibe beleszereltek három forgó tárcsát. Betűnként rejtjelezett, ha megnyomtad egy billentyűjét, akkor egy kis lámpa jelezte, hogy milyen betűt kell leírnod helyette. Itt egy egyszerűsített rajz a belső működéséről. \n", "\n", "![enigma](http://damasdigabor.web.elte.hu/python/beadando1/enigma.JPG) \n", "\n", "A gép úgy működött, hogy a betű lenyomásával az áram végighaladt egy vezetékekből álló rendszeren, és ahová eljutott, ott kigyulladt egy lámpácska. Először egy kapcsolótáblán haladt át, ami megkeverte a drótokat. (azaz egy fix permutációjának felel meg). Aztán áthaladt három tárcsán. Ezek a tárcsák is egy-egy keverést adnak meg, csak a gép működése közben ezek változni fognak. Aztán egy visszafordítóba futott, ami párokba állította a drótokat és visszaküldte az áramot egy másikon. (Aza egy bijekciónak felel meg). Ezután visszafelé átfutott újra a három tárcsán és a kapcsolótáblán. Így visszaért egy billenytűhöz, és az ahhoz tartozó lámpa felgyulladt. Például a kép azt ábrázolja, hogy a `b` billentyű megnyomására a `c` lámpa fog felgyulladni. \n", "\n", "Ha a gép csak ennyit csinálna, akkor ez persze nem volna más csak egy behelyettesítő ábécé. Viszont minden billentyű ütés után a tárcsák állása megváltozott. Az első ütésnél az első tárcsa egyet tekerődött, azaz minden drót körkörösen arrébb ment egyel. Az előző ábrán lévő állásból például ez lett:\n", "\n", "![enigma2](http://damasdigabor.web.elte.hu/python/beadando1/enigma3.JPG) \n", "Itt már a nem a `c` fog világítani, ha lenyomjuk a `b` gombot, hanem a `d`. Az első tárcsa minden gombnyomásra lépett egyet. Amikor az első tárcsa már annyit lépett, hogy teljesen körbe ért, egyet lépett a második tárcsa is. Mindig, amikor a második körbeért, lépett egyet a harmadik tárcsa is. Így az összes lehetséges tárcsa pozíción végigmentek a tárcsák és csak utána kezdődött előröl az egész. Tehát a kapcsolótábla és a visszafordító fixen marad a működés során, a tárcsák pedig különböző sebességgel forognak. \n", "\n", "Készíts egy programot, ami megvalósítja az enigma kódolást. A feladatott objektum orientáltan kell megoldani. \n", "- Készíts egy `AltalanosTarcsa` osztályt, aminek legyen három alosztálya: `KapcsoloTabla`, `ForgoTarcsa` és `Visszafordito`.\n", "- Készíts egy `Enigma` osztályt, amelynek minden példánya egy enigma gépet valósít meg. Tartalmazza a tárcsákat és azok állását, és a hozzá tartozó tárcsák segítségével képes elkódolni egy szöveget. \n", "- Az elkódolást az Enigma osztály `elkodol` metódusa valósítsa meg. \n", "- Rád bízom a részleteket, például, hogy milyen ábécével dolgozol. \n", "\n", "(Bónusz: Gondold meg, hogy ha tudjuk, hogy milyen tárcsákkal dolgozott a gép, azok milyen állásban voltak és a titkosított szöveget is, akkor hogyan nyerhető vissza az eredeti szöveg.) \n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": {}, "nbformat": 4, "nbformat_minor": 2 }