{ "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='b!.aeyyreíóejrwqr? gú'" ] }, { "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='ulbohbüjáúbwúűsbúnbőehivwzc üúf,bénőfülénlé,bnhmúáogé,bühiúczébwzc üúf?bőébohbüjáúbhéslábsanlébiúcúeűvüúf,bizéént,boúpéoúcháegé,béhéslceöbáxhfvüúf?bmlcsbpéúobúnbodéédábohbszfuhüúf,biúbucveúbébálmbmletásblfösslbhéslábénőkbühfveú;bűúű-olélcülébúááúo,búohbűtsbolnőwl,bmleiúfsbúáxűváúobhébühéénúcjbdfőwl.bulbfvm,bmhásiúbdcudebüzfáúbwlfőbw űüú,blexlsbiláelcluhobébsúfkcúbtechob űcú,blfzcujsűúbmúevsbolélcülébiúcúeeúf,bébmőexláb űbpéúsvcúbodéndcafsbqzeúooúf.bodcmlhsbmhofgéáúobúbüvffvwúbmvcsűú,bénvűvsbúbqlűőáőfboősbúcúéncúbsvsűúbébivstfégbfvwvüúfb exbénzcjsűúbsőcuős,bkténsjséúblfbhéslábúbolexlsflábqőceős!bsleáúkbvffsbohbúnböboősbflüláslbqhú;bálmbüzfsbqőfzcénvewúábzfxúábkvcbuúfhú,bálmbüzfsbúbühfvezábzfxúábűgboősbexlcmlo:bőébmzésblexmvébmlfflssblexbéjcwúábilülcálo!blfcőmafsbúbühfve;bálmbhébúoúusbmvcbmú,búohbúbolexlsflábpéliülfbénlmwlbénvffáú;bkluhebmlehásbzssbflénbúbénhelswlábcleelf,bhéslásbovczmzfgbeöedébwlénőuloolf.bvcs,bálmbvcs,bőábúnnúfbolülélsbezáuzfzo,bslcvubkluhebohpéhsbsúcsznhobúbuzfze;biúbdcafbúnblmwlc,bpéúobáxre,bizexbüúáblénl,bslmlééaoblfbúnsbmú,bhssbüúá,bhexvf,bálénl!búüüúfbzuúúusúbúnbluőáxsbwlápőálo:bclénolslssbúbolnlbúnbdclebfleőáxálo,bálmbhébwvszcozuzssbhááhblexénlcbézoús;bmháuhebmlezfüúésúbshsozábúbozcsxzoús.b'\n", "biztos_szoveg='szembe szállna; pedig megint ott lesz a szigetben reggel, istent'" ] }, { "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='lmmusrgsndvhanosnóüscg f,scűvldséúcsjnoühjr.söxswnmünsqkmu:sorfsúcs dun,smnqnóhsúcscúőkóruur,súvhcnaasuldcrú,sműzjnoühésőnósönónoünjnoühésgáóuréséidtmiuun.svnsrséúcjnoühonésőúovnosqlóürsrgsqkmu,swkóüsőrórcraadrsohöio;srsőnmnósorfku,srgstveuhsmnqnóhuscnős mqngun,scstóünuscnsqnunuusrsfrdrcguóündnénédn,sréúéskuusölduré-énmuné,sjnzcnóunéséidtmiuun,srőúékdscgrőxzl du,sőlmol dusőnounésrgsndvhdn.sckécgkdsnó cgséizcióónmscgnvuné,sőlcékdscgrmőrcglmdrsjygu ésjnmsrscgrőxzrcgnőnénu,srgulosmntmunésfúwnooúsrséúcjnoühsuiq an,s csrgusőkovulé:s-sőúmünoscg fsngsrséúzcúsjr!s-scsngusrséúcjnoühsonőscgeqncnoswrmmóruur.srséiqnuénghsncgunovhanosnóüsöxékdrswröulccrmsmnuusőrórcraa,sáöraas qsőámqrső ósnóüswröulccrm;srsjnoühjléswröulcrúaxmsőúovúósőnósmnwnusőkovroú,swloüs qncnésrsjlé.s-sx,swrsréékdrsmnwnuo és osúc,sőúousrsuldcrúős-scxwröukuursrséúcsjnoühjrs-,sréékdsőnccgúdnscg uundöncguwnuo őslórúőru,sékdkolőőrmsfnvúóséúunéúouwnuo ésrsoróüqúmlóar!sőrvrdrésj cgénmo onésrgslórúőséigiuu,scswrscg msulőrv,s osúcskmüroső muxclókcrosaxmkóruwruo é,sőúousrgkéskuu!s csonősidtmusrsorfj oüoné,scnősrsőrvldéléoré,ső ósrscg fséúcsfúdkcsjnmwhéonéscnő,srőnmünésorfénmunékd,sorfoüűóurékdsnmqúukdmlgurésjimiuun.snméignmónuusrsu m,szcúmmkóx-jnw dswxurérdxsakdeukuuséidtmiuunsőúovnou,so wrsnóü-nóüsoüámsúdrőkvkuusnmsrddr,s csjűuularosluűódkuursrséúcjnoühu.sx,sőúmünosakccgrouxsqkmu!sé usu msúcsnmőámu,sőeósq ódnsrswrdőrvúékosréékdldrsohuu,swkóüsrsoüűmrésőldsonősűókdwruuléslu,sőnósénmmnuuséndtmoúté.sx,sohoú,sohoú,soróüdrsohoús cswrurmőrcdr,ső óúczcrésngs dsmnóuiaanusngnosrsqúmlókos-slweukgkuusrséúcjnoüh.shccgnmsjrqlóxésöiuunésrgsndvhdn,s csőúovnosncgunovhanoséúviouiuunéso wloürusrsmnóőrórcraaréséigtm.srsjúrurmsjnoüh,srőnmüsúvhéiganoscg fnosjnmzcnfndnvnuu,sdncgénuqnsjúóünmu:srsjnoc óncsjrxdúlckésdnzcnóqn-dkfkóqrsgűwrourésrsjimvdn.sjnöcg qnmsmnzcrfékvuléslórúéru,szcűfrcgkoswnqnduné;seóü,slórúéuxmsjkcgukuuro,sckqloüro,srmúósmnwnunuusőnóúcőndoúshénu,srguloscgné ddnsnőnmu ésrsdioéiénu,srsmkqréséig szcrfuré,s csnmqúuu éshénusrgsndvhahm.swkqlsqúwnuu é?scsőúsqldwrusdlöűé?surqrccgrm,srőúékdsrsjnzcé é,sóxmülésqúccgru duné,sőnóé dvngunsuhmtésrsjnoüh:s-sonősuűvöluké,swkqlsqúuu ésrsuldcrúőru?sonősurmlmékgurukésqnmtésrgsáuko?srsjnzcé ésonősuűvurésdxműé,svnsnóüsidnósóxmürswkccgrosnmókovkmékgkuu,srgulosaxmúoukuu,s csrgusőkovur:s-srmúówronősmluurősrsuldcrúvru.srőúékdsnóüúfukőaxmsáudrsénmunő,sáöswröxérusmluurősrsunoóndno.sfkőflcsldakzrúésqkmurés-srsuldcrúvaxmsjrdrówruuléshénu,sőndusjnoühúmmruűésqkmu.séicgiounősúcsonéúé,svnsúónosőrórcroswkdvulésrsjnöténu.s-sx,smnoo észcrésőrórcraa!sőkcusrsunoóndusöldwruolő.sőúmünosúcsrgsrsunoónd,sőnc mösdxmr!s-swkccgásqkmorsrddxmsrsőncn!s-sjnmnmunsrsóxmür,s csukqlaam fvnmu.s-sidtmösrgsújöáclóoré!s-súounuu ésrsorfcűórdré.s-sidtmöstvnswröulcrúvoré,srsjúrurms mnundhoné,srőúsanuimu!s csrscg mszcxékusmnwnmusrsjldr,srswrdőrusőnóéiooüngun,svnsrséúcsjnoühjrsqnmtéscnősuidhviuu.sérdlzckoüsulölosrgulosjúrurmsjnoühénusúcséúqlóurésrgsndvho,ső óskmürokérusúc,srőnmünésgcnoó aanésqkmurésrsoüűówrurumrosjnoühjlolm.sngnédhmsrsgcnoónsjlédxms-srsmnócgnaanénusqlmkóruuléséús-sonőszcrfékvulésmnsrsórmmüréru,sáóüsdréuléscgné ddn,scsrsmkqrésngnénusúcsnmqúuu ésrgsndvhahm.s-sűóüroswkqlsqúcgúéshénu?s-suifdnoónuusrsőúsjnoühjloé.s-sonősoróükaarésolmrő,sqkmuséigutésnóü,srőnmüúéső óséúcnaasúc,sőúous o.ső duswróüwruulésőnósrgslórúéru?swkqlsqúwnuunshénusrscgné d?s-sőúsuűvöűé!sőúsuűvöűé!s-sgcúorukmulésrsqndnané.s-smnousrsqldkcarosano gutoésúuusúc,skuusúcsrswlgrésramrélo.suűvöűé,swkqlsőnounésrscgné dno.skmürosfkőfrs csj oüsqncgúséidtmshénu,srőúmünodhmsunsonősúcslmőkvkm!sanéűéűzcélmuűoésrgsramréko,s csmluuűéshénu:sőnmnóscgkalaroslmmuréscg fc óncsvecgnéénm,srdroürmőlqrm,ső gncérmlzzcrm,sckéj mnsölu éérmsróóruulésunmnsrgslórúéru,scsrgslóréswnóü oscglgsőnóscglgsóünduürsj oümnuu.s-s csrgulo?s-sé dvngunsrsjnoühjr,s csdncgénunuusőúovnoslór.s-s csrgulo?srgulosőúsuidu ou?s-suiaanusonősmluuűoé.svnsngsóüioüidyc óncscg fsqkmu.s-swluwrsnoónősúcscgndnozcns d,scsőnóöldwrukősngusrsdróükóxsűuru!s-sűöökoókuusrsjnoühjr.s-swúcgnosngső ósoróücgndyaa,sőúousrsunoóndnénusöldoú!sx,swkóüsnfnvné,swkóüsqlóürékgkő!saldsúuusqkmorsőldsáödrsrsérdlzckoü!sqróükésőldsréékdr,sőúousrsuldcrúő,sréúénusurqrmüsrsqldkcarsqúuuné.szcrésőldscgné ddnsnőnmo oné!szcréskuuslmmwruo ésőldsrsőnmnóscgkalaro,sfkőfrs csj oüncc óséignfnuun!sqrökosőúséiqnuéngúésrgulo?saúgukcroső ósökaasmncg,ső óscgnaa,sétmioanosőúonésvecgeuno onésjimskmürosórgvróko?sűulorső ósoróücgndyaa,ső ósfkőflcraasvkmókésqldorésdlő.svnsőúésrgké?sx,swkóüsőnoo ésőld,swkóüsqlóükősnmsúoo u!sőrórőscnősuűvkő,sőúsmnmu.s-sidtmösonétoé!s-sőkovursrsmnqnóhsőnósrsorfcűóld.s-sidtmösrgstvnsújöáclóorésúuusrgsúcunoscgrarvsnónsrmruu!svnsrsjnoühjrsonéúéscnősuűvkuusidtmoú.sohuu,sohuu,srwkóüszcrésndnö uhmsunmu,scsgimvnmmusu mno-oüldko.srgsnőandné,sréúésmluulésciu ugimvsfkőflölaro,srgusőkovulé:svnscg fsjrsng!s csérdlzckoüsulöloshusqlóuléséúsnmchoné.sqnmnö úóswrukmusrsjnöcgn,scsnóüső müscxwröörmsnmgűwrou.séeogxsjlövrmőrus dgnuuscsj mlöűmurosjnétvusrsjimvio;sonősuűvkuusőkcusrscgndnozc ö dnsókovkmoú,snmcgkőkdeukuur,swkóüsőnósénmmsqlmoúrscgtmhjimvö uhm,srswnmüuhm,srwkmsjnmoiqnénvnuu;suűvur,swkóüsonősmluörsckwrsuiaa sénvqncsidnónaasuldcrúu,séidtmsrséúcsakédkéru,sqúdlókéru,surmloső ósrsőrvrdréruscnő.saúgkoü,srgsűurglcsonősqkmusénmmnőnc.szcrésréékdsu dusáödrsőrólwkg,srőúékdsuldcrúqrmsnóütuusmndréulésnóüsűvqrdko,scswrmmkuur,swkóüsnóüsnőandseóüscgxm:s-sngsrsmnócgnaa!sngusqlmrcguöűé.srgulosé usmúa dúlcsúorcsnóüscg f,sulórcsundnőansqúuunsrsjnoühjlu.srsjrmrékoséidic-éidtmsrdzé fnésjtóóuné,srszcnd félmüwrsőnmmnuusőrórcséeorúsqlglésfkőflgurés-skdkcgmlosvecgeunuunsrsununöténus-,swúourcg éné,scnmünőwűgruáswnqndhésqkmurésrsoróüscgkalaro,sőnóswrurmőrcsrcgurmkésunmnsé fncéioüqnéénm,sölu ékéérm,srőnmünéscglgcgkdscglgsurmm darséndtmunés-smnórmlaaúcseóüsőkovulésrsóündnéné.srsjnoühjlusnóüswkőkéérmsőnóuimuiuu,soróüswkdvxarslmmeukuulé:srswkdvxuscnoéúscnősmluwruur,sőndusgimvscgiqnuunmsqkoulésan,s csnóüsoróü,surdérscghoünódnslmmeukuulé.sx,swkóüsdnőnónuusrsjnoühjr,swkóüsmncun-qldur,sőúséiqnuéngúé!súorckés cscgkarmloükésm funésrscgkalar,s csvecgeu c wngsmluuré.scgeoncsfrfedaxmséúqlókuuséúcswlmxérusróóruuréslórúdr;srswlmxéruszűékdéléérmsuimuiuu ésőnó;srdroükgkuusrmőlu,svúxusjtóóncgunuunésjnmsórmmürúdrs-sáóüsjncunuuné,sőúouwrsdröursundőnuunésqkmor.slórúswnóü dnsqróüscglgsfúdkc,sé é,sjnw dsóünduülusndhceunuuné.sgimvsuyúséigiuusaralésdúoóruxguré,scgrércgukuuskmürokésqkmuré,sőúousrgsnőandné,szcréséúzcúoünés-srsjnoühjrső ósckwrcnősmlukuusúmünonénus-,sjiou,srsjrszcázclosfnvúósnóüsoróüsrdroüzcúmmrósutoviémiuu.scg fsqkmu,sx,sőúmünoscg fc óncscg f!s-sőrsncuns-sőkovuléséidtmiuuns-,sőrsncunsőnóóüáöuöűésőúovnosóünduülölu.sx,szcrésőldsncunsqkmor!s-scxqldókuusrsjnoühjr.s-szcrésőldsőnóóüáöurolésrsóünduülúőru!sqrökosőúséiqnuéngúésrgulo?snmöiooné-nsuldcrúősrgsndvhahm,scsmluoré-nsnoónő?sanéűéűzcélmoré-nsrsqndnané?sóüiéndnénusndncguné-nsúuu,scseóüslmmké-nsjnmvecgeuqn,su mno-oüldko,sidié uúó?srsdkffrousqlóürékglcarsanmnjlövűmusrsé dón,srsé dnójlölcsfnvúós ffnosáóüsóüiudúsrsjléru,sőúousrgsnőandnénusrsjnöjlölc.srgulosq ódnsőnóóüáöukuulésrsóünduülérusrgslórúo.sőúzckvrsdróükólc!sőúzckvrsfkőfr!srsjnoühjlorésőúovnoslórsanmndnőnónuu;srgsnóüúésóünduürsmnsúcsfndgcnmunsgimvsuyúusnóüsöxsvrdrako.s-sörö,súcunonő!s-séúlmukgulésúönvunosrscgkarmloüké,scsóükdcrosnmkmukuulésrsutgnu.sőkcusőldsqúóülgoúrsénmmnuu,sonwkóüsőnóúousnmjkóörsrsdnőnó c.sfnvúósx,swkóüsj mu!sjkmüukosruuxmsdncgénunuu,swkóüsnmqncgeuúsqrmrőnmüúés éncc ó us-scgúounsncg usqnuunsrsélfdlguruxsdróükólc.svnsnóücgndszcréséúuldűmusrscgldoürcröux,scsnóüscndnósóündnésdkoukuusan,skmüroswnqncno,sőúouwrsjimsrérdolésviounoúsrsjlu.srsjnmohuunésoüűókvusm funéénmséiqnuu éshénu.srséúzcúoünéso őloslmmurésnóüsfúmmroruúó,srgulosőnóúouséúuidusanmhmtésrgsűöökoólc,svnsáóü,swkóüsgnoónuusanm srsoróüscgkar.séidtmulozkmulésrsjnoühjlu,s csnóüőlcsűuloscgnvnónuu ésmnsdxmrsrgsrölov ékéru.s-sőúusrérdoré?s-suifdnoónuusrsjr.s-sűóürosőúsmncgsqnmnő?srsóünduülésuiqúós óunésrgslórúo,scsréékdsóükdcrosnmjáöuléshénu,srgulosőnónoónvu ésrsóündnénéoné,swkóüsmncgnvö ésrsjldxm,srőúuszcrésőnóéeqlooré.srgkésőnódkwrőkgulé,swkóüszcrésáóüsdnzcnóunésrgslórú;swrsrszcázclusőnósrgsrdroüzcúmmrókusonősndhceunuu ésqkmorsrsőnooüngnuwng,surmlosjnmsúcsviouúé.srsóündnénésakmvkórosűódlmuréséidtmiuunsfkőflcsölu érúéérm;srsjldrsőldstóünuscnsqnunuuscnoéú,smnójimönaasrgsidnósvröérsfúmmrouórukuuslórúséig ,svnshsúcszcrésrguso gun,sonősjnmnöunuuné-nsnóüsrmőlusqróüsjtó usrsjlo.s-sőkcusnóüsőnc u!snóüsőnc u!s-swegnmnóunéséidtmsrsóündnénésnóüsrmrzckoü,séiq dsnőandu,s cskvrqkocgkmulésrsjnoühjrsrml.srséiq dsnőandsmntmusrsjrsuiq an.s-súuusndvhanosqróüűoés-sőkovurs-,scswluwrsrsjlorésúcswrcgoldrsqlmúé,swrsőnówrmmóruörsrsőnc u.swronősúórgloszcrésnóüsőnc usőkovkésnm.sqlmrccgruké:sőlécgnősőruüúdxmsrérdukéswrmmroú,sqróüsnóütóüysöroéxdxm,sréúsmnaűzcélgkuusrsódlvúzcko,ső óúcsanzctmnunusoündu,s csjnmnc ótmsérfursrséúdlmüéúcrccgkoüu?s-sőlécgnősőruüúdxmsőnc mö!s-séúlmukuuléso wloüro.s-snóütóüysöroéxdxm!s-séiqnunmu ésrsuiaaúné.soróüsgcúqröséndnénvnuu.szcrésrsjnoühjrslmmuscgxumroűms csuyohvqn,scsrgusókovkmur:sqnmnősőldsonősúcsuidhvoné!sfnvúóswlushsőldséúqnuunsrsd cg usrsvúzchc óahm.s csrséiq dsnőandsőnc musnóütóüysöroéxdxm,sréúsmnaűzcélgkuusrsódlvúzcko,ső óúcsanzctmnunusoündu,s csjnmnc ótmsérfursrséúdlmüéúcrccgkoüu.srsóündnénésurfckmuré,s csrguséúralmulé:s-sőnc möső ó!sőnc mö!sőlécgnősőruüúsuidu onu usúcswrmmroúscgndnuu ésqkmor,svnsansénmmnuus doútésnóütóüysöroéxqrm.srsjnoühjrso őlos csnmókovkmékgqrsőndnvusőrórsnm :srgsndvnúsőrvrdréuxmsonőswrmmkuusnjj mnsőnc usckwr.snóütóüysöroéxsmnaűzcélgkuusrsódlvúzcko,ső óúcsőnóérfursrséúdlmüéúcrccgkoüséng u!súóno,sáóüsmlucgúé,sngsrsqúmlósckdr!s-suyohviuu,s csnmwúuunsrsőnc usrgsűukmcxscgxúó,swúcgnoskmürosvnd ésnőandonésmlucgkuu,sréúsnmőkovur!saúgkoü,saúgkoü,séúsuűvör!swluwrsnóücgnds osúcsmnaűzcélgkősrsódlvúzcko,s cséúdlmüéúcrccgkoüusérfkésjnmnc ótm!s-slmőkvkgkuu.scsőldsnmhdnsidtmusrsőlcorforé;saúgukcrosáödrsóünduüléérm,sölu ékéérm,srdroükcsóütőimzciéénms énceuúésjnm.svnswkmorfsonősdnőnóné!s-sjkórvékgkuu.s-scgeqahmsidtmiésőrövsrsfkőflőoré.swkmorfsáödrsőnówrmmórukősnóütóüysöroéxsuidu onu u,surmloső ósőlécgnősőruüú usúc,s cswrmmóruróko,suyohvqnsqúddrcgukuusnó cgs öcgrér.sdnóónmsúorckés cscgkmólésm funésrsoróüscgkalar.sáödrsjnmvecgeunoné!s-sókovkmursűöökoóqrsrsjnoühjr.svnsőnójkóulé,s cséúqkocgkmulésrscgkalaxm,sjimqúuu ésrsm fzchosrsfrvmlcdr,scsnóüsciu usgűóarslmmeukuulé,srwkqlsnóünumnosorfcűóldscnős dusnm.swlusngsőnósőúzckvr?s-sé dvngunsőrólarosrsjr.s-sőúuszcúolmörésúuu?swúcgnosúvnsnóüswroóscnsöűusnmswkgglő!sonéúvhmusrsjrmoré,s csókovkmékgkuu,sókovkmékgkuu:sdl du:sorfkésőnouné,s öcgrélésőámuré,svnsrsfrvmlcdrsonősőnousjimscnoéú.sq ódnsőnóönmnousqrmréú,svnszcrésrg du,swkóüso wloüsmlvluslmmeuckosrscrdkéar.srsjnoühjrskuuslmmusrsciu usgűóaro,scsőldsáóüsmlucgkuu,swkóüsőúovnoéúsőnójnmnvéngnuusdxmr.skvréúoosőkcusu msqros-sqúórcgurmursőrólu.s-sénő oüs csjróükcsrsjimv,swxsurérdsőúovnou.sőkcusonősuűvorésnmtmunuoú,srg dusénmmsnaanosrsgűóarosőnóqldokősrsurqrcgu.smlő,sókovkusqúcnmonésdlő.sőúmünosöxésúcsrgsnőandné!szcréskmürosciu usonsqkmor,scsrérvorsqrmrőúsuldcrő!s-szúo,szúo!s-szúozkóursnóüsnmhúdrőkvxsnó dén.srguloskvrcgrmrvusnóüsőlcúésúc.séidtmcgúőrukmulésrsjlu,s csancűddrourésrgslórúséig .s-sdnuunonuncnoswúvnósqro!s-sfrorcgékvurésrséúcnóndné.s-sétmioanosnó cgnosöxsúuu,súórg-n,sunsidnósjnoüh?s-sonősqróükés osidnó!s-sjnmnmunsrsjnoüh.s-sqroorésolmrősckéérmsidnónaané.s-swkoorosöiuu m?s-sé dvngu ésrgsnóndné.s-s csőúusmluulm?s-scgidoünoséeqlozcúscgndgnunésqkmuré.s-sőnc mösonétoésrsqúmlósmnóóüioüidyaaswnmü dhm,swrsűóürosöldulmskuu!sqkmulm-nsrgs m cérődlaro,srwkmscröukésúmmrukgorésrsfkmzko,s csckoélésmxóorésrsdávdxm?srwkmsjróóüáóünduülosulozkmsrgsnó do f?sckqloürosőnóütoésanskvr,s cséiq dnosöiqtoéséú.söldulm-nskuu?s-skuusonősöldurős-sjnmnmunsrsjnoühjr.s-svnsőnc mnésonéunésrgsndvhdhm,srwkmsorfsctu,s csőrvrdrés onénmoné.s csnmőnc munsnó cgsújöáclólu.srséúcnóndnéső ósckwrcnőswrmmkuurésúmünosőnc u,saűgóxoswrmmóruulé,s csrgusőkovulésrsq ó o:s-sx,svnsckésőúovnousmluulmsun!s csőúmünosakmvkósqkmulm!s-sakmvkó?s-sé dvngunsrsjnoüh,srgulosáödrsq óúóókovkmur,srőúusnmőkovkuu.s-szcréűóüro,snó cgnoscg fsúvhésqkmurésrgké!srgulosnmőnc mun,sőúusmlukuusérdlzckoüsncun,srőúékdső gncérmlzzcrmsróóruulésunmú,sóünduülérusóüáöukuurésrgslórúo.s-sx!s-slmő mékvurésrgsnó dé é.s-sőúmünosakmvkósúcsmnwnuu m,sidnósjnoüh!s-sőkovurősőld,swkóüsonősqróükésidnó!s-sakccgroékvkuusrsjnoüh.s-sngnosrsu mnoswkgurésrgsndvhdhm.srsmnócgnaasékdarosqróüké.szcrésoróükosőrórcdrsohuunő.s-skmüroscg fnosuűvcgsőnc moú!s-smnméncnvunésrséúcnóndné.s csőlcorfs öönmsőróűéérmswkguréső óso óüsnó dé u,swkóüsrgkésúcswrmmwrcclésrsjnoühjrsőnc úu.srsjnoühsfnvúósőúo msukqlaasőnc mu,sroolmsökaarosnőm éngnuusújöáclóldr,s csrguscxwröukuursőrólaro:ső óúczcréscg fsúvhésqkmurésrgké!svnsqúccgru dwnuoné,ső ósqúccgru dwnuonésnóücgnd!snóütóüysöroéxsúcsmnaűzcélgkuusrsódlvúzcko,ső óúcsőnóérfursrséúdlmüéúcrccgkoüséng u,swluwrsonénősúcséúdlmüéúcrccgkoüsöűusjnmnc ótm!s-s csrgsndvhsmnócgnaasjúrurmsoüldjlörsöűukuusrgsncg an.srgshscglőldrsrgsrséúcsoüldjrsqkmusrsqúmlósmnócgnaaséúdlmüéúcrccgkoür.s-séúsrgsrgsnóütóüysöroéx?s-sé dvngu ésrgsnó dé é.s csrsjnoühsnmőkovursonéúésrgsnó cgsőnc us-sérdlzckoüsncunsőúovnoscgrqlusőnóönóüngunsőróloré.srgsnóndnésőrövonősrsjrszcázclúóscgiévnmunésóüioüidyc ótéano.srséiqnuénghs öönmsőldsnó cgscndnósnó dswrmmóruursrsjnoühjlu,sqrcldorfsfnvúósé usfruéloüsúcskvrqnuhviuu,svnsngnésxzcldkmulésrsőnc u,scsnmcgkőkdeukuulésqnmnsrgsnó dé énu.sőkcusőldsonéúéscnősunucgnuuskmürosoróükosrsjnoühjrsőnc ön.s-szcrésngusrgsnóünumnonóüsőnc usuűvkv?s-sé dvngu ésrsfruéloüké.s-szcrésngus-sjnmnmunsrsjnoüh.s-s mnunősmnóakmvkóraasncu ö oswrmmkuurő,szcréwkóüsréékdső ósonősuűvurő,sőúmünosakmvkósqróüké.s-soükőkdáclókcsőncnsng!sonősuűvcgskmüru,srőúsjróóüádxmsőnóscgrmkooldxmscgxm?sqrmrőús m cérődrőnc u?s-skmürusonősuűvkés-sőkovursrsjnoüh.s-sréékdsrölomöűésőróűoéru!s-s csrsfruéloükésjré fo mswróüulé.smrccroé ousrséúcnóndnésúcsnmőrdrvkguré,s csrsjnoühjrséncndynoscxwröukuurs-sőúmünosöxsúcsqkmu,srőúékdsrsjtdónséúcnóndnéséid ősunmnfnvuné,s csrsőnc úőnuswrmmóruulé!shésúcsnmjnmnöunuuné.sőkcusőldszcrésréékdsmncgnésakmvkó,swrsnóüsorfkosmnqúcgonésúoono.svnsőúékdsmncgsrg,sőúékd?snóüsdnóónmsnőandnésöiuunésjnmsrsfrvmlcdr,sj mdnukmulésrsmlvléru,s cséúdlozúólmulésrsciu usgűóaxmsrsjnoühu.sonősalourés ffnoscgnmevnosqnmn,skvrzcrfulésrsfrvmxwkg,scsnóüscgkmórsőldsqkocgkmursúcsrsm fzchsjnm ,srwkmsj oüncnosctuiuusrsorf.s-sáödrséngvhvúésrgs mnu!s-sűöökoókuusrsjnoüh.s dngunsrgstvnsmnqnóhu,srgsnmchsorfcűórdrérus-séúoosqkmusrgsűvqrdko.skmürosóükdcrosuidu ousqnmnsőúovng,swkóüsúvnönscnősqkmusq óúóo goúsőrólu.sqkmusnm ósmluoúqrmxséidtmiuun.srgsűvqrdkosuámsqúdűmxséndusúmmrukgkuu;sdxgcléswrökmuréstv o,sőkckmükóqrsrgsrmrzckoüsciq oüdn,srsqúdlógxswldcréséigiuusjnzcé észúélguré,s csakmvkóroszcúqúunmu é:szcúqúuu,szcúqúuu,srsfldkő,srgsqrosúuu!svnsfndcgnsonősrsjnoühjldrs dunuu é.s-sőkcusrgulos mné!s-sidqnovngnuusrsjnoühjr,s cséúoüáöuxguruursrgslórúu,svnsörö,sőnócldóűmus csnmcgldrvusőúovnoséúzcúsuymnqnmn.skuuswnqnduszcrmlos csórgséigiuusrgsűvqrdscrdélaro.svnsrszcázcloső óskuusutoviémiuusrgsrdroüzcúmmró,scsqúccgrqndunsrsorfcűórdréru.srgsűvqrdkosqúvlőrosölucgkuurésrsóündnéné,sréúésérdlzckoüsncunséidtmulozkmulésrsjnoühjlu,s csrooüúcgkdsidtmunésonéú.srsmnóéúcnaaúésőkcuskvrcgrmrvuswkggl,s csmncgréeukuurszcázcldxmsrgsrdroüzcúmmróku.s-so gg uné,sőúusurmlmurősngnosrszcáoür,sq osérdlzckoüjlo!s-séúlmukuur,s csdlurfkckuusrscgldrgslórédr,srőnmünésdnzcnóqnsuidunésmnséúcszcúgőlörsrmruu.srsjnoühjrsnmo gunsrgstv osqúdlógx,scg fséndunu,srgulosq óúóunéúounuusőrólo,s cscg óünoéngqnsqlóükuusqúccgrsrsfrvmlcsciu usgűólar.srgsndvhdnsókovkmu,stvnsújöáclóldr,srsqúvlősérdlzckoüncudnsőnósrséúcnóndnédn,sréúéskmürosóüioüidyc óónmswrmmóruulésnóütóüysöroéxsőnc ö u.s-snmőámu,sőúovnosnmőámu!s-scxwröukuursrscgnó oüsjnoühjr.s-ső dusúcsonősidtmunősréékd,srőúékdső ósidtmwnuunősqkmor?sőkcusőldsé ch!söiuusnóüsjnöcg csnőand,s csjimqlóursrsjnoühjlu;söxékdrsoürmlasrfdxjrsmnuusanmhmn.sjimmkakókuusrsoróüstcusrmruu,scső münénuscxwröukuu,skmüroswroókcro,swkóüsfűcérdkfkólcoréswrmmrucgkuu.srséúousölucgrvkgxsóündnénésansúcscgrmrvuré,smnóűóókmurésrsuygwnmüsnm ,sanmno guné,s cswrdzúrcroséúralmulé:sfújj-fűjj!srsjnoühjrsfnvúósőúovnosdkffrolcolms-snóü-nóüscxwrösqkmusőúovnosdkffrolcrs-snóüsoüldúsorfdrsókovkmu,sqróüsnóüsu mús ödnséúoosrgsndvhano,srőúékdszcúmmrókéscgúédlgurésjimiuun;srsérdlzckoüncudnsókovkmusőnósnóütóüysöroéxdr,srgsnóünumnosőnc dn,srőúuswrmmkuus csnmőnc mu.sq ótmsonősőrdrvusanmhmnsőlc,szcrésnóüsőrd éswrőű.srsóündnénésukqlaasölucgkuurésrgsűvqrdko;srsmnóéúcnaaúésrsőnmm dnsuygunsrgsrdroüzcúmmróku,srőnmüsrgkosrsakmvkósncu osrsjnoühjrsmnócgnaas éncc ónsqkmu.svnsroorésrgsncu onésq ón;sq ónsrsjlorésúc,sq ónsrsőnc onésúc;sq ón,sq óns-sőúovnosőnc onésngsrsq ón.s'" ] }, { "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 }