{ "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='úvkd.űhü-l.d-.höéhúűa'" ] }, { "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='müéífhejickuípóuz e,íséháe,ídnánüőeíqöqns,íchífnsícáyünícőzőüíőúúdősísnüéonztqns:íúysíuóüéözúínídyjíóe,íöüéíoleúazíníukpksé,ísnüéíuőzőswíuaejasühúíníuöúípkzníükpks.ínípnznw-skbíem-ám;íqőávt,íqyáyséíqkühú;ínbá pnádn-séyvíuajúífnsíejaáséxíóúkzhú;íníohdkáwehzkcíuajúíníqhúhüíehízőpdn:ídőzpóíuóeífyeyásyzískbhehqqíníuősédn.ínjkáúíníukúíonáuneúíoazfhejóífyzzyán:íhzuhálzínídyjsnuípyeóuíőzcnzyán:ípóschsíkziíyzznúíhzbódhsúíőúú,íuóss,íqhss:ípküíwenuíníutúéyuíóeínztejsnuíhüéíejmsqhs.íséóúfníyzzínjínvú :ízyúejóuíníüéaáüéíyüén:ídőeejtíohvkáíuhsciúíúhámúínídőzcíáyvn;ínznúúníbhcóüzhsínídyjíháhejkshuíiáyzz ízhükséóíeőáqnsídhfhákejshu.íbhcóüíóeúhsíphsúehs,ídőüéímüéíhzoőüznzvnp,íeínífózyüíqőeejnsú íáyünzpnóúídnzzvnp!ínjúysíphüíuóíyzzív ú,ídőüéíáhypíshpíúaásh,íeíhzfhúúíqóáúőuykáúíawekpíphüíshpíazsh.íhjúíksíshpínunáőpíkeíshpíóeíúnsyweőe,ídnshpíópízhúkejhpíejkuhcíjeypőzéydőj:ídőüéíuóízhüpkzú qqíáy,íohzekühcíútcdnúvn,íuóáyzéóíncőpysé-ukbhsínssnuíncvn.íhjnznúúínífyáqníüéőáeídmánc uíphsúhu.íníuóáyzéízhvaúúíkeíeőuísnüéöáóíáhschu,íníukúíqnvsőuíbhcóüíwe snuősíhüéejhááhíósctzúíeíkáuhjhúúíphüíníqnvfmf ídhzéáh.íőúúípóuz e,ípódhzéheúíbnáúőúíkáúínízyqn,íwe snuyúíqháöüúníníejkzheíctsyqn:ípósúdníuőáweőzéyjsn,íotúőúúínjínídnqős,íbnáúqnífyüúníőááyúíníbheúóíőzcnzős.í'\n", "biztos_szoveg='törne, s elvett birtokáért öcsém meg nem ölne. ezt én'" ] }, { "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='íkqwsűvóákeéxsé sqwysráwysóékumseáúékéőár,sóámúáwspá l,sgmjtizxqúúsőémúyéül,súukryumsűvóákeéx.sjúúsúáryéxuúúsryékjvdrsqwyswáxváw,srqcqmsűkáméw:sóá ácqrryjsőjkúuiásiíxb sqxúsmxqkqúúqs qwüuőőár,scqkúsioób kd swyíryíkamzwsóu úsásmxqcrqi,sőq b stqvjwsőákéúméwumszmsizryq cqm.siátűüáspí íúúsásrqcqmlksidőqsózmqúúsgocqkqsőbmxiz iqvqúú,sásgocqkúscqwsáxsqkiz yqiqúskhxmájrvéispurúéisiíkb ,smsáxsűvóákeéxsq dúústéxmjúmxdryqwsxí vq ú,spqezksójkéwlswá áwuryá,sóíkímsgmjtiqkhxmástuctéxuúúsásiíxqtzr,smsrqcgmáisáxsbóqweéxőár,svqsáxsqwzmxsiqkúőqrsib írím,skjúiásójkéwuisryo úái.sóu úsáxsűkáméwráisqwysmxukwá cámsiqkúzmxq;síkícsóu úsózwjwcqrrjsásójkéwéwyáisiíxíúú,sáswybcí gmímír,sásóqúqczryqmiqkúqr.sásiqkúsqwyjismákiéőárscqweáwyuúúsásiqkúzmxsqwysvákáőiéúsáxsűvóákeéxszómxéxávumstákiüéőh :srzeérysíkqwstűmxtérwőuikuú,sácq yqústjkácjmspukcéülkásryqmqúú.scíwíúúbisizúseáúá cám,sózrspásé ú,scáüvrqcsqwzmxqrsgműtámxur,smsáijskéüűisrzxqúú,sáxsq mdstj áráúőársáxúsejeqúúq,seuwysqwysmxz kueácsráwysmxá cágmuchiiá seukvúásúq qséwájiáú.scjrvqrsmxá cágmuchsqwy-qwyscávékpzmxqisóu ú.s ékcémseu hiscqwsóáküáisrztqmsmqkqwqsz úsjúúsjvdú qrsjvdishúá,sóá hméwumscávékpá űsóu úsásizúspá,sáscávákáisóu úáisjúúsáxsűkáméwui,sáspí vqműkái,sásőjkúuisdmjszmsjwáxjswáxvéj.sáxsqcőqkqiiq szvqmiqóqmqúsúíkdvúqi,svqsq úakúzisáxsá ágmuryársüékhsúqkqcúczryqiqú,sőékstűmiéüűismuimxuksvíkwíúúsásgmqküzmőqr;sj yqriuksáscávákáiskzcb úsiékuwémmá skíttqrúqispí spzmxibikd .sásiqkúzmxsrqcqwymxqkscurvúásűkérái,seuwysásózrspéiáúsijsiq qrqsvírúqrj,scqkúsgmáisq gmlpoúüéisásmxztsiqkúqú,smsásiíkryzisáiiuksás ékcémscávákáiúh sjmscqwmxáőávű rá.seárqcsáxsűkáméwsrqcsáiákúásőérúárjsásizúsíkqwspéú,smqsáscávákáiáú,sejmxqrsczwjmgmáisáseáüvárjsjvdiseokcurvhjsóu úái,smáüré úásijtűmxúoúárjsdiqú.s-sáxsásizúspásáscávákáisíkíimzwq,scákávüurseéúsáxsíózi,sühs ákmqrqc!sq zwsvu wuvsóárslwyjm!sásúqswurvuvsásójkéwumiqkú,sáxsbóqweéx,sáswybcí gmímscqwsásóqúqczryqm!s ákmqr,sásiqkúzmx,smxukwá uccá sq éúúáscjrvqrsvu wéú,swurvvá szmsmxqkqúqúúq sétu úásáspéiáú,sásójkéwuiáú,scqwsjmsvjgmzkúqsáxsűkáméw,svqsáxúsmqseá wáúúásq sq dúúq,seuwysőákéúájré srqcqwymxqkstuctémswybcí gmíiqúsqóqúú,sgmuvé áúumsójkéwuiáús éúuúú,süuőőáiáúszmsmxqőőqiqú,scjrúsácj yqrqisáxsdsiqkúüzőqrsúqkqcrqi.sq mxucukuvuúúsásiqkúzmx,sejmxqrsdsás qwüuőőáúsáiákúá,smsás qwüuőőáúsgmq qiqvúq.svqkzisqcőqksóu úszmseamzwqmsmxu wéüásűkérái.sqwysráturscáwéeuxseoóáúúásáxsűkáméw,szmsq curvúásrqij,seuwysq dxdsrátsáxsqwyjisq diq dsőákéúüásámxúá éré sjmcqkqú qrspáüúéülsá céúszmsiíkúzúsqóqúú,su yársühoxaúszmsődsrqvóaú,seuwysásóqrvzwqisrqcsúűvúáisőqúq rjsóq q.sőjxuryumársib ukmxéwjspáüúéisóu úái,svqseásáxszweáü áúsqrwqvj,sühs qrrqscqweurumoúárj.sáseéxjwáxvásgmáisárryjúsúűvuúú,seuwysásóékums qwq mdswybcí gmiqkqmiqvdüzúd sóqúúzi.scqwizkúqseéúsáxsűkáméwsásiqkúzmxzú,s uóáwu üursőqsásóékumőá,szmsúűváiu üáscqwsáúúh sásiqkqmiqvdúd ,seurrárseuxáúúásáswybcí gmíú,szmskqrvq üqrsu úóéryúsőq d q.sásiqkúzmxsüh sjmcqkúqsásiqkqmiqvdú,szttqrsárráismxuiúásq ávrjsáxsűkáméwspq qm qwqmswybcí gmzú.sőq uóáwu úseéúsásóékumőá,szmscqwizkvqxúqsúd q,seurrársóá hsáxsáskjúiáspáüúéülsá cászmsiíkúq.s-svqsejmxqrszttqrsúd qvsóqúúqc!sáxsűkáméwsiqkúüzőqrsúqkcqúú!s-scurvúásásiqkqmiqvd,szmscqwcűúáúúásáxsá céúscqwsásiíkúzú.sásiqkúzmxsryucőárskéjmcqkú.scqwíkb úsásiqkúzmx;smjqúqúúsűkéeux,szmsq curvúásrqij,seuwysástuctémsá cáscqwsiíkúqsásúű áüvursiqkúüzőqrsúqkqc.srqcsejúúqsáxsűkáméw.s-s qeqúqú qrsáx,s ákmqr!sjwáxu üásokémőársáxsásiqkqmiqvd,sáiiuksq ejmxqc.sásiqkúzmxseácákumárscqweuxúásáxsokémú.s-sib írím!s-scurvúásq wurvu iuxóásáxsűkáméw.sáúúh spuwóásáxsűkáméwscjrvqrrátstuctémsiíkúzúscqwsá céúseá cuxúáúuúúspq seáúá cámsúé áiőársáxsámxúá érs-súű áüvursiqkúüqswybcí gmqjú,sáspí ím qwqúscqwsóziámxécsib vúqsiíxq jszmsúéóu jsőákéúájrái,sczwsib ukmxéwőásjm.smuisíkícqsúq úsőqrrq,sőéksákkh smqspq qviqxqúúscqw,seuwysáxsásryékszmsáxsq dxdsráwyursiqvóqxqúúsáswybcí gmrqi,smsáxsqwzmxsukmxéwőársühsúqkczmsóu ú.súq ú-cl úsáxsjvd.sáxsűkáméwsqwysrátsqőzvkqsóu úsejóáúá umsásijké yjsűvóákőá.scémrátscqwjrúscáwéeuxskqrvq úqsásiqkúzmxzú.sáspq mzwsámxúá éré su yárstuctémsoxasbóqweéxjsvjrryzúsqóqúú,sácj yqúsáxsdsiqkúzmxqsmueámqcsib víúúsáxsámxúá éká.s-scqrüsq sáxsűvóákjsiqkúzmxeqx,sühs ákmqr,smsizküsúd qsrzeéryscáwuúsáőőh sásgmuvé áúumspáüúéülsvjrryződ !s-svqsejmxqrsáxsűvóákjsiqkúzmxsúd brisiátúásásvjrryqcáwuú!s-scurvúáscumu yuwóásásiqkúzmx.s-sáiiuksczwstuctémáőősoxaózsrqóq úqs-spq q úqsáxsűkáméw.s-scjrvqwyjisijúardsóu ú!s-slwyseéúsőbmxiqs qeqúqi!s-scurvúásásiqkúzmx.s-scqwsiq scurvárucsűkáméwuvrái,seuwysáxsűvóákjsiqkúzmxrqisqőőqrsáxsqmxúqrvdőqrsrjrgmsmxqkqrgmzüqsásvjrryzóq ;sácjiuks éúúá,scj yqrstuctémáisáscjqjri,smscqwox q úq,spq ójúqúqúúseékcáúsástá uúéőá.s-súl smuiáúsúákúámxscáwávkh ,sühs ákmqr,seásáxúsejmxqv,seuwysáxuisásvjrryzisáscjsiqkúbriőd sóá hi.s-sőjxuryumsóáwyuisőqrrq,sűkács-scurvúásásiqkúzmx.sq cqrúsáxsűvóákjsiqkúzmxeqx,szmsokémúsizkúsúd q,seuwysástuctémsvjrryqsáxsdsbóqweéxűiőh siqkb úsásijké ysámxúá éká.sécű úsáxslk,sejúúsásmxqczrqi.sq őqmxz úqscjrvqrijrqisásejmúhkjéú,sáxsokémúsjmscqwcűúáúúá.sáúúh spuwóásvjrryqcáwóájőh sjmsib víxwqúqúúscqmmxqspí vkq,sáüérvziőá,szttlwy,scjrúsá cá-szmsiíkúqu úóéryájőh .seokqszkiqxqúúsrqcmuiéká,seuwyscqwqkqvúqi,stuctémswybcí gmíúsúqkqcrqi,smsáxsűkáméwsőjkúuiékh srqóqxúzisq sáspáüúéiáú,su óámúásjmsáxsűkáméwsásőjkúuiásrqózúsárwu ű ,srzcqúb ,spkárgjéű .sqxúsrqcsjmsé cuvúásóu ráskzwqőőqr.s-sgmáis ákmqrsrqsőoxxásq scáwéúsúl méwumárs-scurvúásáxsűkáméw.sásiqkúzmxsrqcsőoxúásq scáwéú,svqsrqcsáiákúsávvjwscqweá rj,sácowsrqcsjmcqkjisq sáxsukmxéwsqwyjis qwüuőősiqkúzmxzrqi.scjrvqrsqmxúqrvdőqrscqwtkhőé iuxuúúsóá ácjsiqkújsríózrysrqcqmoúzmzóq ,smsqxsmjiqkb úsjmsrqij,svqsűkásrqcqwymxqksásmxqczkqsóqúqúúq,seuwysáxsq mdsrqcqmoúzmq,sásiíkúqscqwsáxsá cásóu úsás qwüuőő,sásizmdőőjspáüúéiscqmmxqscíwíúúbiscákávrái.sásvjrryqsjmsxácáúum,svqsácjúsásijké ysámxúá éré sqóqúú,sqwzmxqrscémsoxasóu ú.sühsáxsqtqksjm,svqsrqcsib írő,scjrúsácjsásúíőőjsőjkúuiumsiqkúüzőqrsúqkqc.sácjiuksáxúérsqwyjiszóőqrstűvóéms qúúsáskqúqi,scémkh smqsőqmxz úsáxsűkáméw,scjrúsákkh ;sásiqkúzmxsúíőőjsiqxqscűriéüéúsrqcsjmsqc qwqúúq.smxjrúqsüh qmqúúsáxsűkáméwrái,seásáxúscurveáúúá:s-sqxsáxsqmxúqrvdsrqcseuxuúúsühsúqkczmú,siqvóqms ákmqrqc!s-sóá hméwwá sőu vuwwésúqúúq,seásásmxqczkqsóqúeqúúq:s-sqxsáxsqmxúqrvdsrqcsóu úsmxqkqrgmzm!sásiqkúzmxseqúqrúqsúíőőmxíkswyíryíkaqrsq kqrvqxqúúsójkéwgmuikuiáúsójúúspq sásmxuőéiőá,su yársbwyqmqrsóé uwáúúásímmxqsásójkéwuiáú,seuwysmxjrúqslüsmxorqiőqrskáwyuwúáispq .s-sühsox zmqvsóár,s ákmqrs-svjgmzkúqscqwsáxslk.s-sqxúsáxsávucéryúsáxurőársjmúqrúd siátúáv,srqcsásúqszkvqcqv.sqwysrátsásiqkúzmxsráwysikjmúé yúé áúsé oúuúúsásmxuőásámxúá éká;sásúé őársóoxjkhxmá qóz s jőqwqúú,skáüúásqwyseummxlsmxékl,skáwyuwh,sizisójkéwsryűwuvuúú,sáiiuká,scjrúsqwysrátkápukwh.s-sjrvjájs húűmx!s-sijé úuúúspq sáxsűkáméw,sácjiukscqw éúúá.smueámqcs éúuúúsczwsj yqrsójkéwuú.srátpzryőqsé oúuúúá,sqmúqscqwsás éctáspzryiíkzőq,slwyswyíryíkiívíúúsőqrrq.sáijsgmáis éúúá,stuctémszmskjúiásójkéwráisrqóqxúq,sjwqr,sqxúscurvúásáxsukmxéws qwq diq dőősjpülsvécéüásjm,sásijké yijmámmxury,sáijsrqcgmáismxzt,svqsuiumszmsühmxoóasúqkqcúzmsjmsóu ú.sáxsűkáméwsmxqkqrgmzüzrqisúákúuúúá,seuwysásójkéwuúséúrylüúeáúúásrqij,smsásójkéwspq iqkb úsásijké yjstá uúéőá.scqrúsáxsűkáméwsásiqkúüzőq,seuwyscáwásjmsmxáioúmursqwysmxé áúsásib írímsójkéwőh ,svqsrqcsúá é úsúíőőqú.seoóáúúásásiqkúzmxú,szmscqwizkvqxúq,seu srdsástuctémsizis húűmxójkéw.s-sásiqkúőqrsejéőásiqkqmúqcs-scurvúá.s-sózwjwüékúácsásójkéwumiqkúqú,sczwsáxsbóqweéxőársjmsóu úác,svqsrqcs éúúácsmqeu .s-srqcsjmsuúúsrds-spq q úqsásiqkúzmx.s-siíxírmzwqmsójkéwsáx,sásóqúqczryqmiqkúőqrsmxqvúqc.szmscj yqrsmxzt!su yár,scjrúsqwysójkéwxhsiáiúűmx,stqvjwsgmáisáxsákújgmhiásójkéwá.s-sqxúsq dőősjmscqwcurveáúúávsóu rá!s-sczkwq dvíúúsáxsűkáméw.s-sáxúsejúúqc,sóá ácjskjúiá,sjvqwqrsójkéw.srqóqúmzwqmmzsúqúúz sásijké yijmámmxurysq dúú!sdscqw éúúásré ácsásójkéwuú,smscqwúqúmxqúúsrqij,srqcsjmcqkúq,stqvjwsráwyursüékúámsásúqkczmxqúkáüxőár,svqseéúsiuryeáríózryqiiq srqcspuw á iuxuúú.seuwysjmsüűúeáúuúúsqmxqvőq,s ákmqr,seuwyspq euxxsásmxuőécőásj yqrsiíxírmzwqmsójkéwuú?scumúscáüvsijrqóqúsásijké yijmámmxury.smsástuctémsizisójkéwuú,sácq ysásiuryeáiqkúőqrsryo uúú,sijójúqúúqsásmxuőéüéőh sáxsűkáméw,sáxúscurvúá,srqcsuvásóá h,sáxúérsőugméráúuúsizkúsásijké yijmámmxuryúh ,scqrúqwqúdxíúú,seuwysásiíxírmzwqmsójkéwuúsásiqkúzmxsójúúqsásmxuőéüéőá,sdsrqcsúűvúá,scjpáüúás qeqú.s-sjwáxméwúá ársásiqkúzmxzóq s-scurvúásásijké yijmámmxury.s-scqwcűúáúuúúsrqibrisqwystuctéxh,smxztsójkéwuú,sácjkqsqvvjwsbwyqúsmqsóqúqúúbri,spq pqvqxúqsmxécűrikásásmxztmzwqúsuúú,sáeu scjsmueámqcsiqkqmúbisóu rá.scqwizkqcsáxsűvóákjsiqkúzmxú,seuwysácowsáxsákújgmhiásójkéwxji,scjrvqrrátseuxxurspq sj yqrsójkéwuúsásmxuőécőá.slwysjmsúqúú.sáxsűkáméws qbxqrúsásiqkúzmxzrqi,seuwysójwyqrspq seuxxésczwsqwysmxé áúsásizisójkéwőh .s-súű áüvurizttqrsqwzmxqrsgmjrums-scurvúá.s-s qwá éőőjmszkvqiqm!szmscqwvjgmzkúqsásiqkúzmxú.sqxúsmxqkqújs ákmqrs-swurvu úáscáwéőár.s-sq izryqxúqúqúúszmsejlsqcőqk.sdmmxq skqúúqrúdsqkqüasójeáksvbeírwíúú;sqwyszümxáiásczwsóáváőőű súucőu ú,smsásiqkúsxűwéőárswyíiqkqmúb sijgmáóákúásáxszómxéxávumspéiáús-sáxsűkáméwsőéráúékászmsásiqkúzmxsíkíczkq.sáspzmxibiqúsóqmxúqúúseu hi,sóáküáiskzcb úskjgmáüásczwsásójeáksbóí úzmzúsjmsúl eákmuwúá.smxékryűiiá sóqkvqmúzisáxsűvóákeéxsáő áiájú,scjrúeásáxsqcőqkqiqúsáiákúéisóu rásmqwoúmzwb seoórj.s-scumúsíkb eqúmx,s ákmqr!s-scurvúásáxsűkáméw.s-sásójeáksijvírúíúúqsáspéiáú,smsáscávákáisáxsqkvdőqsií úíxrqi.sowyscékseokcurvhüásmqscákávúsáseáüvárjsjvdirqi,srjrgm,sácjsqc ziqxúqmmqrskéüűi.smxucuklsvu uwsqx!sásiqkúzmxsrqcsmxh úsmqccjú,svqscéksáxurswurvu iuxuúú,sácjúskzwhúáspukwáúuúúsáxsqmxzőqr:slwysáiákúásijeámxré rjsástuctém,srátmbúíúúqseq yqú,seuwysáxsásiqkúsvomxqszmsáxsűkáméwsmxqczrqisíkícqs qwyqr.sásijvd úspáhkjémuisímmxqúíkúzisástjkácjmsá áilkásryqmqúústűmxtérwőuikuiáúsjm.sáxuiseq yzőqsqkvqjszmscqxqjsójkéwuismakasmxdryqwzúsb úqúúqsásiqkúzmx.scémsiqkúzmxrqisqmxzőqsmqsüűúuúúsóu rásj yqrsqwymxqkasríózryqiqúsb úqúrjsáxsűkáméwstuctémszmswáxváwsiqkúüzőq.sáxsqwyjiqúsrátumseq ykqsb úqúúq,sáscémjiáúsékryziőá,sáeuwysásríózrysmxqkqúúq.sráwyswurvvá sétu wáúúásásiqkúrqisáxúsásxűwéú,smswyíryíkaqrstuctéxuúúsáxsqxqkpz qsójkéw.sásübú árvjsőukhiásmxorzóq szmspukcéüéóá sáxsjúé jájsgjtkűmkásqc ziqxúqúqúú;sáspzryqms qóq a,smxlkhmsikjmxúűmúíójmsúz qr-ryékursxí vq ú,swyíryíkamzwsóu úsásmxqcrqi.sq dúúqsúíőőpz qspáüúéülstépkéry;srzcq yjisu yársóu ú,scjrúsqwysátkhgmiásté cá,sáscémji,scjrúeásu úá cáxhüás qúúsóu rásárráisásúíkziqry,smxztsríózryrqi,sácjúsózrűmxeáüráisrqóqxrqi.sjúúsójkéwxuúúsáscumúueásríózrysjm,sásőuüúuküér,su yársbvzrszmsmxztqr,seuwysőq qj qúúsóu rásqwysgmuiukőá.sásőuüúuküérsásmxékáxsúá áüúsmxqkqúúq;sáscz yqőőseq yqiqr,sásrqvóqmqőőspí vőqrsiqkújmhmiásxí vq ús-sáxsmqcsvomxríózry,svqsu yárspqmúdjszmsmxzt,scáwámsmxékéóá ,seáúá cáms qóq qjóq !sqwycémsá áúúsmukáiuxh,smékwásójkéwájóá sjúúseáü ávuxuúúsásiákeummxlméwlsíiíkpákiihkh,sqwyqrqmúsáscqxdkd st érúé úáséúsásiqkúzmx.smxáwumcbwq,stjúytárw,sqkvqjswyírwyójkéw,súbrvzkiurúy,seékuc qóq ascávékmhmiásúákiásmakaüqstuctéxuúúsásiqkúsmákiéőár.sgmuvé áúums éúóérysóu ú.s qwq í sá ágmuryspkárgjápí vjsiíkúqpéisvkhúkáspqmxoúqúúséwájsá iuúúáismíózryú;siátúáisq zwsrátpzryú,swurvumsétu émú,smseácákumársu yársráwyszmsődsrqvóaswybcí gmíúsúqkqcúqi,scjrúseáxéüűiőár.sásizús ucőúá ársíkqwspáseq yzkqseummxlsxémx hkűváúsúaxíúús ákmqr,skáüúásvérjásxémx hüás uőuwuúú,scq qúúqsczwsqwysthxráscáwám uúú,sácq yqúsryék-szmsdmxjvdrsiuc hsxí vsjrvéjszmsj áúumsójkéwtácáúájsőukoúuúúáisq ,súz qrsáxurőársdmjsmxuiémsmxqkjrúsxáőizózúsiíúíxíúúskésásiqkúzmx,seávvs qwyqrsáxszwscávákájráisőu vuwsiákégmuryjs áiucéüűi.s-sásühs ákmqrszkxq wdms qúúsíkqwsrátüájkás-scurvúásiqkúzmxzkd sáxsűkáméw.s-svqseamzwqmszmsvqkzisqcőqk.slüzóiuksqwyspdóékumjsiztqmlüméwőársiíxí úqisqwysiztqú:sáskzwjsűvóákeéxsiqkúüzrqisxűwéúséőkéxu úá,sáeu sásxémx hklvscq qúúsáxszwscávákájráisóu úsúqkoúqúúsámxúá á.sáijsásiztqús éúúá,sáxúscurvúá,seuwysmxztswurvu áúsóu úsáxsdmjsmxuiémúspq q qóqroúqrj.s-seásqxsás ákmqrsgmjré sóá ácjú,scjrvüékúsmxzúibkúí ji.smxqkqrgmzmsqcőqk!sózwb sczwsőbmxizrqisiq s qrrqc,seuwysáxszrsiqkúzmxqc!s-scurvúásáxsűkáméwsjkjwyqr.sqmxzőqsmqsüűúuúú,seuwysásiqkúzmxsmxukwá cámszmsőqgmb qúqmscűriéüéóá smxqkqxúqsáseokrqózú.sqvvjwsásúíkúzrqúsásiqkúzmxkd scqwsáxsűkáméwkh .swurvu iuxxsq skáüúá!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 }