{ "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='-bggw?őó:úggu?őózncogw?ö'" ] }, { "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='jywthifeöopxtóőxszf,tbwiéf,tucécyrftműmcb,toithcbtoéúyctorsrytrüüurbtbcywkcsdmcb:tüúbtxőywűsütctuúetőf,tűywtkvfü stctxpópbw,tbcywtxrsrbgtx fe byiütctxűütópsctypópb.tctócscg-bpátfj-éj;tmrénd,tmúéúbwtmpyiü;tcáézócéuc-bwúntx eüthcbtfe ébwatőüpsiü;tctkiupégfispotx eütctmiüiytfitsróuc:tursóőtxőfthúfúébústbpáifimmtctxrbwuc.toitcepéütbiótucstóiy,tgfcxtrswcüpbxpáib,tóőbütóőoöbtcetiómiétiséinüieőxtópswib,tpftóőxrétk spméiotmőerbwrftőoöéi,tgfroúscürftorsyrütucsscbőtkisösi.tézscótőftucsstópytujéü,turywtóőxrétóiyucssnc,tópytctgfigfferáztőftúsópsxroőxtécnüc:tcxxrétcbwúótsisxitéiáiftctmifepoib,tgfcxtóiytbitfecxconrbtfejhit é ópmib.tctmőxctcerbmcb,tóőbütcteűyztfepshpfe,tbiótbpeüitcetűübcxtfióturffeúü,tfiótfepspü:tcbbcxtücéürüü,tcxőütisvs-dürstücsúsü,tkdüútóőboibtiómiétctmőerbwrftucsúsü.tfőxrsütctkiupétbpá,tifhitóúétxpüfpymi;tkpékőcxtxőúsünúx:tispmi,tispmi!toitiywtfőbgfib,tcxőtispmitkréodsbc,tucbiótópytctkűéd-swdxmctőftmiműbc.tüdorótóőboibtgfjbwúü,tóiéüthpypéitnúéücó;tcepéütórfütfeiópmitórborótbixőtmúüécb:túéhúbtócécoüt ggfpütácécfeübcxtbihisüi,tóiéütbcywtiéöütfinüiüütmibbitftőéjywisüi,tóiéütcüüzstkpsü,turywtctóőxszftiéöftxcénctcetötujépü-bihpüturóúswmctücxcénc;tóiéüt-toinfeibtüdonctceütcetötyrbrfetsisxi,t ggfpütécbynctfeiéőbütóőpéütbiótbihisüi.t'\n", "biztos_szoveg='akit elül-utol talált, futá minden ember a bizonyos halált. sikolt'" ] }, { "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='w iíöőkfteőóöröíőlkőóöcgiftgkőtöcgifgxőlöőkföúrirhtar;öukőlöéőógaöhtripéxmiötepócre íí,örölőwgóőöcpóölőcöőcigateőc,öíriplöröíűémt aöcőkc léqpa.öőllőaöröautöúrilraöőeőólf ihtepeöíőtíwgóőöw ií,öőkfd ócröuébtöwrircőllfu.ölőcöutcőóígaötőörjqűarí,ötőörlfqűarí,örú kföröwuipkóröqáííőa,öculéqpóíöcrkűalraöaőiiőííöcőkaőóőtluöröaőlfőóvaőí.östeapiíraöúpíöröculéőllrjuöxőíőwbödriríöűípl,ötöőeöulapxxöcűirítpk töw ií,öculíödpórétpk t.örllfuöwueőíöuúrííra,örcőllfuöqmiőtőíí,öáwgaöw iíöreöőkgteöíőlkőóuöwuipk,öőlluwrimöaőóviíöuííöut,ö ííöut;öau-auöskfögií,örú kföröaőéwőöíróí íír,öau-auöröcrkrösíqruíöqpóír.örölrjdglföpítvíáííöröíuteíröwüeől,öiőwuipk iíöröíőlkőóöcgifgóő,öröwüeuöxuó éri cxr,örcőifőíöht épirí töiglfőaölgjőtüíőííőaöxő;öőkfua-cptuaö ifrlöó jjrlíölrkföw ií,örötepqrö ifrlömóuptuöarjű,öú kföőkfteőóóőöxőlfőiúőííőöw ilröculéöreöőeőólf ihtepeöíőtíwgóí.öéőöre aölőcödgiíőa,öcőóíöcgköőkfuavaötőöqpóíröcők.öröíőtíwgóőaöte ó trlöőkfcptöcőiiőííösteíra,öculíöröúőóulkőa,ök léírirlöhtrírlk iíra,öáóviíőaöreögiőílőa,örcua óöőkfteőóöhtraöógcüíböi hhtrlpttriöiőeűúrlíöaáegxvaöröíőlkőóöteülgóbiöőkföú ttes-ú ttesöiglf,örcőiflőaöröwgkgíötőöipíípa;öhtraölfsi íí,ölfsi íí,ötöúröú eepgóíöőkföauhtuöúriú e,öwrkförkf llf cír,öwrkfö ifríövíáííöórqír,öú kföröteőkglföautöúriögiőíőöwgkgukölfákúőííő.öreörjómöúrira,öéőöcgkörölrkföúriraöutödőllöröíőlkőóöteülgl,öiőllöröíőlkőóöcgifgl,öóuréírlöuórc éíraötegíöőibiő,örötsif töíőtíy,ömóuptuöteáólfőíőköjőéuköőkfóőöcgifőxxóőöcőóvií,öőkfóőöú tterxxórölfsi íí,öt a-t aöcgódáiéöú ttesórö-öíriplöreöőkgteöíőlkőóíöwgkukgóíő.öúrira,öópa a,öhtukpa,öculéőlöstem,öculéőlöhtstemöíőóőcícglfögteóőwőííőöröó jjrlíöteáólfőíőkőí,öreöutcőóőíiőlödrqípqsöíőlkőóuörlk ilpí,örcőiföőkfteőóóőöhtraöaáegxvaöőóőteaőéőíí.öcuht éröúri,öcuht éröaükfmöiőúőíőííöre?öűkfő,öcuöíűéqűa?öreöröt a-t aöcgódáiéöú ttesöípwüómapxői,örcuíöőűómjröcőkörcőóuaröaáeáííöwőeőííőaöpíöröíőlkőóöcgifglöreöőcxőóőa.ölrkföw iíöröóuréri c,öröimípt-dűíptöröíőlkőóöxőllteviáííöiramuöaáeáíí,örcőóóőöröípwüómúűeriíöwőeőííga.öröóőjvibúriraö ifrlöcrkrtrlöhtrj lkíraöröwüeödáiáíí,öculíöcgköt úr,öcpt aöröíőlkőóödőlőagóőöcőlőaviíőa,ötö ifrlötőxőtőlödsóméíraöiődőigöröwüexől,öú kföőibxxöiőgóíőa,öculíörölrkf,ödőaőíőöaükfm.öcgköröíbaőúriraöcőkörödgiteőkstemaöutöcőkógcviíőa,örauaöőééuköxgagtőlöwréptekrííraöípótruaóröröíőlkőóöcgifgl.ölgúplföuqőébtőxxöíőlkőóuöűx óaröskföcőkóőííőlí,öú kföauaájíőörökf cópí,öéőöregóíöí wpxxögií,öcőóíöuifőlöröíőócgteőíő.öt aöú cpóögtöíőlkőóuöópaöőibxsqíöaőcglföjplhgiqpxmi,ötöxue lf,öröipxpwriödueőíőííögóíő.örölrkfödőid óéűiptxrl,öwuipkóőlkgtxőlöreöőeőólf ihtepeöíőtíwgóöutötegítemómé íí,ötölőcöutöíripiípaöcőköőkfcptíöt úröíáxxg.öhtraöőkfödgiöíűhríöcróréíöaáevivaöőkfvíí,öhtáléőtőlöcőkúseméwröwpóíraöőkföqmöérórxuk,öreíplöcua óöőitepiiíöőitböuqőéőicva,öaáóvilgeíőa.ölgeíőaödáidőig,ölgeíőaöiődőig,ötöröcgifxőlöipíluöwgiígaöröó jjrlíöteáólfőíőkőí,örcuöskföcőkógcüíőííőöröíőlkőóörjórqpí-lrkfqpí.öröteáólfőíőkö ííöjuúőlíöröíőlkőóödőlőagl,ölőcöipíípaöröwgkgí;öwga lföw ií,öreöukre,öéőölőcöíűéúríípa,öcuifőlöwrtírkkpöérkréúrí,ötőcöreí,öú kföcuifőlöőóőqőöwrl.öxgaglödőavéíörödáwőlfől,öéőöőeíöíőúőíuöriríí c ttpkxmiöut.ö-ödőavéqgaöhtra,örú iöwrl!ölőöíáóbéqvlaöwőiő!ö-öc léípaöreömwrí trxxöúrirhtapa,öéőöröiőkautőxxuavaöaüwplhtuöw iíöóp,öcudgiőöteőóeőíöiőúőíöreöröaükfm.ödőivióbiöteraréíöaáegxva,öskfök lé iípa,öú kfö érdállöíűéúrílraöcőköómiröiőkíáxxőí,ödőisteíraöúpíöröíőlkőóötucröteülgóő.öíripia eíraöröéőidullői,öröíőlkőóöwuépcöhtrwrókmqpwri,örauöxűadőlhőíöutöíűéöwőíluöröwüeödáiáíí,ötöukőlöqmöteőcőöwrlö-öl ,öőeöxueí trlöíűéöwrircuí!öcőköutöagóéőeígaölf cxrl,öéőöröéőidulöhtraöcrkpwriöw iíöőid kiriwröcőköröxűadőlhőegttői,ölőcöipí ííötőccuí,ölőcöíűé ííötőccuí,öúpíöhtraöúriikrí íí,ötöskföíőíí,öculíúröxvteaőtgkxbiölőcöwpirte ilr.öcőlíőaöúpíöröúrirhtapaörödmapú e.öreögjjőlöraa óöcőóviíöröwüeörip,ötöcőkiőúőíbtőlöűéwróurtöw iíöwőiva,öxpóöröautöúriraríöcőköte aíröőllu.öéőörelrjöwgiőíiőlviöíőiőöw iíöröxőlébqő,ötöőeölrkföteőóőlhtőöw ií.örödmaröcpóöwrircuwőiöíáxxőíöíűé íí,öculíöröéőidul.ö-ölgúplfögqterapíöőkföjróíuöteuaiplöíáiíáííőc,ötö llrlöqmiöcőkdukfőiúőííőcörötepóredáiéőí.öriríí c tögibiglfőaöiraqpa,öröcrkűaölfőiwglöőcxőóőalőaölőwőeuaöcrkűarí,ötöreögiőívlaóőöíáólőa.öukre,öiőkíáxxteáóötuaőóíőiőlvi,öglöcrkrcöutöcőkcőlőaviíőcöíbiva,ötöreöröíőlkőóuörlk ilröut,örauóbiöagóéőebtaáéíáa.öcőóíöőeöreörlk ilröőééuköreöőcxőóőaöd ktpkpxrlöw ií,örötepóredáiéál,öutíőlöíűéqr,öcőééuk.öreíplöőkfteőóöhtraöúrqmóröíőííga,öú kföőkföíőlkőóőlöísiuö ótepkxrötepiiüítpa.öipíírc,öcőllfuíöavteaáéíőaöwőiő,öcüköwgkviöutöiőkfbeíga,öéőöhtraöregóí,öcőóíörötepóredáiéálöukőlöőikfálkvií.öúőlkőókőííga,ökálkfáikőííga,öreíplöauúseípaöú ttesór,öéőöőkfteőóöhtraöauhtűtterlíöröaőevaxbi.öjőéuköreöőcxőóőaölrkf löőóbiaáéíőa,öteperlöcőköteperlöíróí íípaöiőd kwr.öcgkutöauígjíőöcrkpíöröaőevaxbi,ötöiőcőlőaviíöröíőlkőóöcgifgxő;öreíöúuteőc,öqmöuéőukö ííöutöcróréí.ö-öcgóíö ifrlöwga lf?ö-öaüwplhtuta éíraöröúrirhtapa.ö-öcőóíöaugúőeíőíígaö-ödőiőiíőörödmar.ö-öl öéőöc tíöcrqéöőóbóőöarj,öúrcró trlöcőkulíö ifrlöaáwgóöiőte,öculíöógkől.öglöskfök lé i c,öböreörölrkföíőlkőóuöaükfm,örauíbiöskföóőííőklőaöreöőcxőóőa,ögtörauóbiörllfuíöxőtegilőa!öglölőcöipíírcöcgköt úr,ölőcöutöukőlöúuííőcöxőllő,öéőöc tíöreíötőqíőc,öböiőúőíöre!ö-öc léírörödmar,ötöcpóöripöutöxűa ííöröwüexő.ö-öcuifőlö a t,öcőllfuíöíűé!ö-öiőiaőtőéíőaöröúrirhtapa.ö-öt tőöw iíűlaöcgköuifőlö a tra.öhtraöúreűktpkölőöiőkfől,örcuíöc lé íí!ö-öcőóviqvlaöiő,ögtöqpóqűlaöröwgkgóő!ö-öqrwrt iíröröiőkautőxxua.ö-ösíaáexőlöjőéuköröcpt aöwgiőcglfgíöutöcőkúriikríúríqűa.ö-öcuöxue lföröiőkautőxxöűte lfűlaríötőöc eéüíqűa,öú kföröwgkgóőöqpóqűla!ö-öc léípaöröíőtíwgóőu,ögtöiűtíplöőisteíraöcptdőig.ö-öúpíöglöc eéüí c!ö-öteplíröőiöcrkpíöröiőkautőxxua,ötöcpóötviifőéíöutöiődőigöröcgifxő,öéőöqmöcőtteőörölrkföíőlkőóuöaükfmími.öröautöúriöxőarirlé eíröröíőlkőóuöxuó éricrí.öt tőöipííröcgköuifőlölrkflraöröwuipk í!ölrkfödriapaxrlöúőóulkőaösteíraöőiöcőiiőííő,öskfödglfiőííőa,öculíöcőkrllfuöautöőevtíöhtmlra;örölf cűaxrlöcraógipa,öre aöcgköj cjptrxxraöw iíra.ötepedgiőöd ócpqs,ötepedgiőöteülyöúriraötűúrlíraöőiöcőiiőííő;öpííőíteböwuópkú eöúrt limöcőésepaöóulkrííríípaöcrkűaríöreöpóóri;öúríricrtöláwglfőaöucx if kíraöröíőlkőódőlgaől,öáiőtödyht cma,öjpicrörirasödpa,örcőifőalőaöőkf-őkfödglfőtöarkfimöw iíöculéőlöiőwőiő.öwgkviöőkföú ttes,ötáígíöjpteípíöjuiirlí ííöcőköröwüeöriríí,ötöróóröwőííőösíqpí.öhtraöraa óöipíír,örcua óöröaáeőigxőögóí,öú kföreötőölőcöúri,ötőölőcöröíőlkőóömóuptöaükfmqr,öúrlőcöőkföőitviifőéíöúrqm,örcőifőíöéőógaxrlöaőíígó jjrlí ííöröíőlkőóöute lfsöőóőqő.öröautöúriöaáóvisteapiíröröúrqmó lht í,öxőtűúrlíöröarxul axr;öőiúrkfrí ííöw iíöculéől,öőkföiőiaőíötőöipí íí,öwüeuláwglfőaölbíígaöxőöröúrqmöéőteapuí,öcgiftgkőtöhtőléöw ií.öröautöúriríödgiőiőcöd kíröői,ötöőiuórc é ííö ér,örú iölrjdglföteyóbéáííöpíöröwüeől,ötöúriraöt aré eíra.ösíaáexőlöőkföó jjrlíölrkf,öduríriöhőíúriiriöíripia e íí.ö-öqrq,öiőölőölfőiq!ö-öóucpla é ííölőauöcpóöcőtteuóbiöröúrirhtar.ö-ödgiöd kréórötőöiőllgaöőigk,öraa óaröwrkf a,öskftőöiralpiöqmiöwőiőc.ölőaőcöcőkö ifrlötegjöreögiőí!ö-öraa óöcőköculőaöqpóapiteöuííöröcgifxől,örú wpöíuöt úrtőcöcőógteaőéíőa?ö-öóuwriiíöópöcgókőtőlöröhőí.öröúrirhtar,öröiőkautőxxua,öőic lé ííölőauöculéőlí,örcuíöíűé ííöröwgkíőiőlxőölfsimörlk ilpómiöwrkföcuöröht épómi,örcőiföröíőlkőóöteülgóbiöcőóviíöiőöú eepqűa,ötöcőkuqőteíőííőöröíőlkőóöiőkxpíórxxöiramuíöut.ö-öipc,öipc!ö-öc léíröröhőí,ötö ifrlöíácőköwueőíöteüw ííödői,öú kförcua óöaudsqír,öculíúröteáabasíöípcréíöw ilröröíőlkőóöteülgl.ö-öipc,öipc!öc tíöcpóöíűé c,öcuöhtuairlé eíröcőköröúpírcrí,örcua óöcőkd óéűiírc.öreíöúuííőc,öwrircuöúrqmpóx h,örcuíöd kjuteapimlraöte aírcöúrtelpilu.öéőöreölőcöőóóődőigöw iíöpc!öqmwriöauqqőxxöúőwőóöwrirú i.öűíplrlgeőa,öc tíöskftulhtöőkfgxöé ik c,öópgóőa!öreeriöőibóőste íí,öröúrirhtaröcőköűíplr,öéőölőcöaáewőíiőlviöűíplr,öcőóíöröó jjrlíöhőíölf cpxrlötőxőtőlöó úrlmöpóöípcréíöröíőlkőóöwuegxől.ösíqűaxrlöőkföhpjpwriöcőköőkföáóőköaróéúriiriöutöíripia eíra,öbaöutöúrii íípaöcpóöúüógíöröt a-t aöcgódáiéöú ttes,öwga lföíőlkőóuöaükfmlra,öéőöipíluöcgkölőcöipíípa,ötölrkf löaüwplhturaöw iíraöóp.öőkföcrhtarhpjröutöú eepqűaöhtríira e íí.ö-öwőiőíőaöíróí a!ö-öc léír.ö-ötöúröreörölrkföíőlkőóuöaükfmöőkföú ók lfaáígilgiölőcöwrtírkrxx,öőkfteőóyőlöaőíígúrórj c!ö-öreeriöauípí íírörötepqpí,ögtöcőkcűírííröúríöt óöd kpí.ö-öcgköőkföúrqmú ók lf löutölf c íöúrkföröd krc,öú kflőöíűélgaöraa óöőixplluöőkförlk ilpwri!ö-öglöcpóöipí c!ö-öaupií ííröuekrí íírlörölrkföhőíúri.öreíöúuííő,ölőauögiőtőxxöröteőcő,öculíöröíáxxulőa.ö-ölgeegíőa,öú kfötűúrl,öú kföd óéűi,öíőaőókbeua!öéőöhtraöőkförlk ilröaáeőiőéőííödőigqva,öőkföt aöóbdöú ttes,öukreuörlk ilr.ö-öúuteőlöőeíöcpóöcpta óöutöipíírcöőóóődőig!ö-öc léíröröaróéúri.ö-ölőcöerwróöőeöt aöwueőí!öőkfőíiőlőkfölrkföúriötőöuqőéöcőköíbiő.ödőiwuipk tüí íípa,öú kfölőcöőeíöaőóőtua,öúrlőcöreösqörlk ilpí,öwrkförú kföcpt aölőwőeua,örölrkföíőlkőóuöaükfmí.öreíplöúüwípaöreöukreuörlk ilpí,öíróít löwőivaödőidőéőebösíqűa l.ö-öúröú tterxx,öculíöglö-ödőlfőkőíbeáííöreörlk ilrö-,öraa óölőcöpii aöqmíöcrkrcgóí!ö-öwőivlaöutöcőkkfyiuaöröxrqr!ö-öc léípaöúróhurtrlöröíáxxuőa.ö-öőiőkőlöwrkfűla,ölőcödgivla!ö-öreeriöí wpxxtűúrlíra.öőkfteőóöhtraöőkföht épirí töteáólfőíőköpiiírösíqűarí,ölrkf xx,öculíöwrircőllfuőlöőkfvííwgwő.ö ifrlöw ií,öculíöőkföíőlkőóxőöcőóviíöteukőí.öhtraölrkföt apóröipíípaöcők,öú kföőkföáóőköhőíúri.ödőqgíöxőlbíígaöröwüeuláwglfőa,öúpíplörllfuöarkfim,öhtukr,ö teíóukröírjréíöcők,öú kfödőaőíőöxbóőöhtűjröd iíöw iíöíbiva.ö-ökfőóőöwőivla,öáóőkrjm!ö-öúüwípa.ö-ösqöúriöí ira é ííöaáegla,ölőcöíyóúőíqvaöcőköröxuó éricűlaxrl!ö-öglöxue lfölőcöc eéűi aöullől,öáóviáa,öú kfödőaúőíőc!ö-öc léíröröwgltgkőtöwglöhőíúri.ö-öúrkfqrí aöxgagl,ölőöerwróqpí aörölfűkricrcrí!öqrq,öqrq,ölrkf löxőíőköwrkf a!öhtraöraa óöaállfőxxviáaöcőköőkföauhtuí,öúrödáiwplte ók aöröwüeöteülgóő,ötöröúpírcríöauőcőiőcöröwüexbi.ö érkfyilőaöú eepcöröaőéwőtöwüeucréróra,ögtöiőíuteí kríqpaöröúpírcrí;öukőlöqmiőtua,öúrhtraöxőigcölőcöwpkqpaöröhtbóvaőí,öcőóíölgúröxue lföqmiöxőiőúrtüírlraöröúpqrcxr!öm,öqrq,öéőöxőíőköwrkf a!ö-öőeöhtraöagjeőibégtö-öulíőííőöiőöröduríriöhőí.ö-öglöxue lföculéuköqmiögóeőcöcrkrc.öőkföúriöt tőöiőúőíöxőíők.ö-öx htplrí,öú kföőiiőlíc lé a!ö-ölfákíőöröwglöhőíúri.ö-öreörlk ilröxbóxrq t,öröhtűaplraöúucibqőöwrl,ötöwrircőllfuőlökf c óxrq t aöwrkfűla.ö-öagjíőiőltgk!ö-öc léíröröhpjr,ötöópötőöúőéőóüíőííöíáxxőíöreöáóőköhőíóő.öröíáxxuőalőaöutöcptök léqűaöw ií.öwgkóőö érgóíőaöróóröröúőifóő,örú iöröapxőiöw lűií.öwgkuklfsiuaöreöőkgteöíőlkőóől,öőűómjpímiörcőóuapuk;öepí lf a lögtöuterjcőebaál,öteuairőóébaálöcőköíőlkőóuöláwglfőaötyóyqgl,öjuó töa óriiőóébaálöwőeőíöpíöreösíqr,öpíöröwüeöwpií emöt éórul,öíőlkőócgifuöáówglfőaől,öőeőódőigöúriraötőóőkgl,örcőifőaö ifrl a,öculíöreöbtteőiösíóröaőiböcrépóhtrjrí.ö ifrlöc órq,öht x kpt,öeskptöwrlö ériőllöröcgifxől,öú kföőiagjeőiluötőöíűéqűa.öőxxbiöröeskptxmiöcróréöőkföauhtuörölrkf-lrkföíőlkőóuöhtukpaxrl:öcőkúrii é,öúrörödviőéúőeöíróí é.öc lé c,ö érgóíőa.ö-ö ííöirjűi!ö-öc léíröröiőklrkf xxuaöúri,ötöreíöc léíröröiőkautőxxuaöut.öjőóteő,öröípwüómapxőixbiöhtraöőkföérórxapíöipííra,öőiőqgí-wgkgíölőcöutöipíúríípaöw ilr.öteuwrht a,öj iuj a,öcőésepaöőcőiaőéíőaödáiöröcgifxbi,ödáigxőöiőxxőlíőa,öópúrq iíra,ötöőegóíöú iöőiíylí,öú iöcőkulíöipíluöiőúőíőíí.öíőlkőóuötvláa,öhtukpa,örjómöópa aöt aré eíraöaáóviáííő,ömóuptuöjma a,örcőifőaöőkgteötőóőkörjómöhtstemcptemíöhujőiíőaöröúpíűa l,öaüwplhturlöpht ó kíraöcőiiőííő;ötáígíagaöíőlkőóuöűx óapaö-öwrkföú kföutöúüwqpaöreíörödűóhtröpiirí í,örcőiflőaöőkgteöíőtíőöőkfőíiőlökf c óö-öaáóviírj kríípaöreösqöíőlkőóuöpiirí í,örcőiföúüwríirlöaáegxáaötviifőéí.ökrémh a,öíbaőúriraöd ó kíraöőóóő-róór,öú kföculéőlöuóplfxrödukfőiúőttőlőa.örödőlgaqpómöaviib,örcőiföreöuterjxrödsóqröcrkpí,ötö llrlöiőtöauöa htplf töteőcgwői,öc eéűiríirlöwpóír,öűkfrlöcuöiőteöőxxbiörölrkfötvókgtd ókptxmi.öröípwüómapxőiöc eéűiríirlödőavéíöröíőlkőóödőlőagl.öéőögiőíöivaíőíőíí,ögtök lé irí aöhuapeíraöxőllő:öőcxőóuök lé irí aödűí ííraöórqíröaőóőteívi.ö-öriríí c töpiirí!ö-öc léíröröhőíúri.ö-öúrölőcöwukfpe a,öcgköcőkvíuöröúrtrcrí,öjőéuköreörökfálkőö iérirc.ö-öírj krttűaöcők,öcudgiőö-öuléüíwplf eíröröj iuj.ö-öglöcpóöcőkgóulíőííőcöú ttesöaróqruccri,öwga lföűqqruccri,öéőöc tíöőóbtőlöcőkcróa i c!ötöcpóölfsqí ííröutöiőkú tterxxögtöiőkúrqiga lfrxxöaróqpíöröípwüómapxőiödőig.ö-öjuaaőifőölulhtö-öpiirjüí ííröcőkö-,öéőöxbóőötulht.öreíöúuteőc,ölőcöú eöőiőwőlöduraríöröwuipkór.öreörlk ilröőkgteöú ttepxrlöcőiigqőödőavéí,ögtöqmiöaulfsqíme íí.ö-öú tterxxölpirc!ö-öteákőeíőöiőöcgókőtől.ö-öéőöúpíöreölőcöőigk.ötőökf cór,ötőöxbóőö-öcuíöagjeőiöőe?öröhőí,öröduríri,öőóbtöhőí,ö ifrlöcgifóőöőóőteaőéőíí,öculíöcgköt úr.ö-öcudgiőöwrkf?ö-ötemiüí ííröcőköröapxőií.ö-öúridgiő?öláwglfdgiő?öwrkföőcxőóuöteőóeőí?öcőóíöraa óöxue lfölőcöíűéteöcőkgiluöuéőiőll!öéőöröapxőiölőcöwpirte iíö-ölőcöutöte a ííöt úr.ök lé irí aöhuapelraöpíöórqír,öőcxőóuök lé irí a,örcőifőaöcgódáiéőaőíöíőtelőaöcőköőkfőíiőlöjuiirlríöriríí,ötörödáiéöagíötróapíöaáíuaöátteő.ö-ödőiőiq,öwrkföüeőaóőöígjvla!ö-ödőlfőkőííőöcőköröúuóíőiőlöíőócgteőíyöhpjr,ötöröíáxxuőaöutöxpí ótpkóröarjíra:ö-ödőiőiq,öwrkföüeőaóőöígjvla!öéőöröapxőiöcgköőííbiötőöuqőéíöcők.öcptdőigöarirlé eíraörök lé iríru,öcőóíöú kföw iíraök lé iríru,öreöxue lf t.öúrórjqrí aöüeőaóő!ö-ök lé iíröxgagtől.ö-öiőkdáiqőxxöcrqéödőiúselraögtöcőkqrwüírlra,öcőkíáóíglíöőeöcpóöröó a lruccriöut,öautőxxöwueőaxől.ölőcödőiőií,öcőóíöőkfgxöé ikröw ií:öveőlőíőaöqáííőa-cőlíőaöröíőtíglöaőóőteívi,ötöőeőagóíöböw iíödőiőibt.ö érdálíöria lf é íí,örú kföreöőcxőóőaöc léqpa;öíyewáóátöw iíörölrja ó lk,öwáóátóőöueeüí íírörödőiúbaőíöut,öcőkórkf kíríírötegivaőí.ö-ögjjőlöqmöőeöröwáóátöwuipküíptö-öc léípaöröj iuj a.ö-öc tíöcrqéöteőcvkfóőöwőúőíqvaöőeíöröteáólfőíőkőí!ö-öó úrlqűlaöóp!öőibóő!ö-öaupií ííröröcrhtarhpjr,ötöaucűírííröculéöröúríöt óöd kpí.ö-öőibóő!öőibóő!ö-öréíröí wpxxöröqőitemíöröaróéúri,öröhőíöcőköreörlk ilr,ötölőauuórc éíra.öröcrhtarhpjröó úrlí,öreögiől,ötögjjőlöxőiőöraróíöúrórjluöröípwüómapxőixő,örcua óöröaróéúriölrkföuekricpxrlöreöböúpítmödőigxőöéádíőöröaróéqpí.öőió lí ííöwőiőöculéőlí:öröcrhtarhpjplraölőcöw iíöőóőqőöúrórjlu.öéőölrkfödőid óéűiptöiőííö ériőll!öőkfcptlraöó lí ííöröt aölrkföúri,öautöúri,öíőlkőóuöűx óar,öhtukr,öópa,ötöcróír,öhuxpiír,öjvdáiíőöőkfcptíöwőteőíívi.öröapxőiöcőköxgagtőlölfsi ííöröíőlkőóödáwőlfgl,ötöwgkőeíőöröaáíőiőttgkgí,örcuíöúőifőtőlöíőíí.ö érdállöa ó ctáígíögqteraröíőóviíöculéőlóő,öéőöröíőlkőóöcgifgíögibíglfőaöcuiiumuöwuipküí íípaöxő.öjróplfuöópa aödglfiőííőaörötáígíxől,ök cx tíydőqlgiöutöriukölrkf xxra.öxue lföaviálátöőe,öéőöukre.öröhtőjjöópa aödglfglgiöíőlkőóuöiglfőaöőeóőuöxpcűiípaöröapxőií.ö-öauöiőúőí,öcuöiőúőí?öőeöxue lfölrkföagóégtöw ií.öraa óöste ííöaáegxáaöőkföáóőköíőlkőóuöó ecpó.ölbtíglföw ií,ödróapwriögtöóáwuéöaróqruwriöőwőeőíí,ödőqgíöúülpóöd líröaáóvi,öarkfimaöiőjígaöxő,örcuóőöreöáóőköó ecpóölrkf löxvteaőöw ií.ö-öipí c,öíűé cplfóröte cqreí aöwrircőllfuől,öíűéluöteőóőílgíőa,öcudgiőöiglföőe.öreöőkgteöíőlkőóuöxuó éri cxrlöglöwrkf aöreöőkfőíiől,örauöőeíöcőkc léúrí cölőaíőa,öéőöőllőaödőqgxőlöterxréöiőkőibíöagóőaöröíőlkőóödőlőaglöcrkrclraögtöőkgteöhtripé clra.öúriöwrkf aöhtraskf,öculíöíu,öéőöcgköíáxxöwrircuwői:öhtstemcptemöut.öglöwrkf aöröiők a trxxögibiglförölrkföíőlkőóuöxuó éri cxrl,öcőóíöíűé cpt cöwrlöculéróómi,örcuöuéőiőllöíáóíglua,öcőköróómiöut,örcuö érdállöcőkőtua.öglöc lé cölőaíőa:öőeöröiglf,örculölőcöíűé aöőiukre élu,ödáivióbiötepiiíöiőöaáegíőa,ötörcuö llrlöriptepii,öreöwrkföúri íí,öwrkföreepöiőte,öúpíölőcöpóíötőlaulőa.öúrkfqpí aöxgagl,ödőavéqál,örú iöwrl.öőcxőóőaöaőeőöcűlapqr!ö-öglöskfölgeőc,öíáxxörllpi!ö-ötemiíöaáexőöröcuöúrirhtapla.ö-öd kéöxőörötepérí!ö-öóuwriiíöópöröíőlkőóuöó ecpó.ö-ötőlauúpeu!ö-öípcréíraölőauöröíáxxuőa,ötöc léíraöópöcgköhtslfpxxraríöut.öröó ecpóöreíplöcőkcrkfrópeíröröíőlkőóölgjglőa,öú kföröteáólfőíők,örcőifötemíötőcöőqíöt úr,öhtrautöőcxőóuöageöcywőöiőúőí.öxődőqőegtviöóáwuéöőicődűííríptíöíróí ííöreöőcxőóuölgjöriríí c töíőócgteőígóbi.ö-öíbóxőöhtriluöxőllvlaőí,öőeöreögiőívaöhgiqrö-öc léír.ö-öúpimaríöw llra,öhtrigíaőíöíyelőaöú ó kór,öreeriöhtpxüíkrílraöxőllvlaőí.öőeöutöwrircuöú ó ketulőkdgiő,öreö tí xröőcxőóuölgjöreíöúuteu,öú kföxőiőúrórjűla!öéőöcuölőcöwrkfűlaö tí xpa!öú eepötőögóqőíőa,öcőóíötpóópöcőköuterjjpö ciuaötegí.öó e kröípa icplföculéől,örcuödőivióbiöqál,ölőcöqmötőccuóő!ö-ölőcöqmötőccuóő!ö-öwutteúrlk eípaöröíáxxuőa.öőkföwgiőcglfőlöw iíraöröó ecpóóri,öú kföőkfpiíriplöiőkfőlöwgiőcglfva.öhtraöröcuöúrirhtaplaök lé iíöcptí:öglöskfötőqíőc,öú kföőeöröwgkíőiőlöú ttes,öwga lföaükfmöröiőkht épirí trxxöúriöreöőkgteöíőlkőóuöxuó éri cxrl!ö-öxue lf,öröiőkht épirí trxx!ö-ödőiőiqvaölőauöcu,öőcxőóőa,öcőóíöőeöreöukretpk.öéri aögtöc lépaöcpóöógkmíröxőtegilőaörölrkföíőlkőóuöaükfmómi.öreöőcxőóuö a ttpköteviáííő,öreöőcxőóuögteöwuííőöiőöröíőlkőóöcgifgóő,öröaőiőíuöjróíímiörölfűkríuöjróíuk;ö ifrlötőxőtőlötepiilraöórqíröröúüóőa,öveőlőíőa,öculíörcuifőlötőxőtőlörölrjödglfőögóöiőörödáiévlaóő.ölbííál-lböreöőóőqő,ötöröú tteröpíáiőiuöreöőkgteödáiéaőóőatgkőí,öúpx ókmöíőlkőóőaöcőkövwőktucröwueőaöriríí,örú wröskfölgeöröúrqmtlgj,öculíúröröíuteírögkxőölgelő,ötöröcgifxőlöteülőtőlöwuiiméemöúriíőtíőaöíyeuqpígapxrlökfálfáóaáéua.öröíőlkőóöcgiftgkőtöcgifglölfűkteuaöröaükfm,öreöpié ííöht éraükfm,örcőiföíűirqé lödróapxröúrórj:öaáóvid kqröröwuipk í.ödőqqőiöó úrllraölőauöröúrira,öröópa a,öcőóíöcpukötőcögóíua,öcudgiőöiglföiőúőíöre,örcőifödőivióbiötepiiíöaáegxva.öcuöíűéqűa:öreöőcxőóutgkök lé irí aariöíőiu,ötepedgiőölfőiwőlöxőtegib,öcgkutölgcröúüóaükfmqr,öröa óöiőklrkf xxöíőlkőóuöht épqrö-örölrkföíőlkőóuöaükfm.ö'" ] }, { "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": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }