{ "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='öxűtíöíu-yrkíöitíöíéöyyőaj'" ] }, { "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='lzh,köqnáklzhkplztahk nakynpebaknk gctála,kulccgzknkqúluklppsykefqúynkójpcja,ktzla;kqújmahdk lactzbpcnpkmlazknmnqúbqk sppsa,kelcgzkutzkplztahybppkqlukelxlphúgáksppsa.kqútplqkbmqúszéymnkulqqúl,kulqqúlkísufp,kugayxnkusqkulúüámlk szhanklkxnysmmfp;knúykxgaatknúkluílm:ktpükygpnpbuón,kőy lk,spynpéyaspklzhköqlátphkxnpbuín.knkáfyhsákxnmnzrsykaluklzhtíkbábúyn,kxnalukxbzhknkónmánqyknúkfc nmínkxbúyn;kusmubqykólpfznyrsáklúláknköqlptcly;knútmyköqnákmj gcmlkóbzynknkílqútcly:kagaöqkgcüukyb síímnkxbzhkunmncrnákgyyla,kálzhlpulclykelcgzkspcrnkulzknúkgqyla;kspcrnkulzknúkgqylaklúlaknk gpszba:kutzknkusqgábakgq,kqúg luíüpkág sabu.kylzaneksppykágknúkükátykpl laylkógn;kaluk bpykótpbmqúszínakbphnakesmkcnpgn,kaluk bpyknk gpszbakbphnakrwkátykzhlmulá:ktqkubqyklzhusqkulpplyyklzhkqűmínakxl lmalá!klpmtuőpyknk gpsz;kalukgqknáncykusmkun,knágknkálzhlyplaköqlx lpkqúluílkqúsppan;kelcgzkulzgaykbyykplqúknkqúgzlyílakmlzzlp,kgqylaykásmbubpwkzüzjqkílqútcláálp.ksmy,kaluksmy,ktaknúúnpkál lqlykzbacbpbá,kylmsckelcgzkágöqgykynmybúgáknkcbpbz;kxnkjmőpknúkluílm,köqnákahdz,kxbzhk naklqúl,kylulqqőáklpknúykun,kgyyk na,kgzhsp,kalqúl!kn npkbcnncynknúklctahykílaötalá:kmlqúálylyyknkálúlknúkjmlzkplztahalá,kalukgqkísybmábcbyykgaagklzhqúlmkqbány;kugacgzkulzbp nqynkygyábaknkábmyhbány.k'\n", "biztos_szoveg='ő két levente fia; nem volt félországban olyan pár dalia,'" ] }, { "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='éeóélkdzmdle-eó wgmöfzéedocslvwámleosqezfe-elnwódmedvwsódehykgkk,etgqöet vwdmeüeéweykrfmekécfckéeéwkeéevfzr bük,eéo kel mmetéqögkkeéeluztfwóém.eszkdeodmketfk,esvedclszkd,exdeo pdcevdeéetéxméqö,evdeéweykréeknóó ecéluhéemdoe vodzkdedceéeoéqfsmél,eéexdzsleóélkdzeódvwgcqfckékkéeéezdmxüzvsqmdl.e-etéhvwfczéegcöém,eo mkeéwesmevfzr büo!e-ervgxfclgwgkkedceéwedqö lejzmgl,evegxéfccjkgkkéeéevfzr bükeéeoéqfseodccs.ervélyqöém,evwélévwkgkkeofvéepgck,eosqeéecdqscdvdóóevyvwkdzvwdoevdekyxkéepgcméeüldkeodqlácnmónwkdkm edqöofvkuc.e-ejzmgleőz!e-evwucjkgkkéeodqedqöeéck vwk,eél edqöervgoue zékkécecsbdkkeéevwgófóé.eéwejzmgleodqígzxyck,efkpdkkdeéwe zékglék,eveéo lgzedc mkswkd,eodq mkeéelskebfzevfzr büzdedvdkkeéekdl mkdkd.eogvkeéwkfmeofzepsqlsbbeódcdwépézgxgkk:eéehgóóegcxéc ebfz-deéwenpsepéqöeéeóécegcxéc .e-eéweéwedmöso,eéodcö levfzgve-exnmknkkdedcepsqác,ebdx qezgvvwycexnmknkk,eodzkesbbdmeéevwdzdmrvd-kámxszevfzr bühdepgckeéevfzgv.emgexdemstéeéezdmxüzvsqdme vekspdxtdkmdl.eéwejzmgleídctőwkéeéeoéqfsmélepsckevfzr bük,emstfmöe zékgkewvdózdepfqgkk,edqöelnkdqdkeodqeéetuméeécf,etgqöeoéhxegkktgmefkgcpévvéesvecdofvgché.etémdoesbbdmepévfzmébepgck,evwsb,emébgvexscdcükk,eézzéeqgmxgcketfk,eo cödmehucdvmdedqöel vevskéeéeízdxdz lvódzqdm.eqgmxgcké,eveofze mxycke v.emdoet mmso,etgqöeéléxkemfcéervnmxdvdóóesvevwgzqécoévéóóeí ékécdoódz;e qéwfmeodqszxdoc eéwkeéel vevskfk,edcdqdkeqnzmödxkeéweévwkéceodccdkk.edc mxyck,eogmxgo,eodmk,eodmk,esvemdoeqgmxgckevdoo zd,ejqöeéeóipnvevfzr büemdoeoykéktékkéeodqeéekyxgofmöfk.eéeíévgzóémevwdoódkécfclgwgkkedqöe vodzüvspdc,eéwe íhőelncküpdc,eél edcogmxkéemdl ,etgqöeofvmébemöfz eykéwfvzée mxyc.e-eofzeodq mkeykéw l?e-evutéhkgkkeídceéwejzmgl.e-eo cödmeógcxgqecdtdk,eél evwéóéx!ezdbáctdk,eo mkeéepfmxgzoéxfz,eo eodqeácámleéevwileléc klfóém.e-exdeéóóéeéeléc klfóéek vwkéeóőwfkevwuzméleo mxdmméb!e-eídcdckeéelnckü.e-emdoeldcceéqqgxécoévlgxm yleéetgcmébeídcüc,evenzdqlgzylóémeó wkgvemöyqxjhékescpdwmdl.e-eéwszkeosq venmmdleéecdqhgóó!e-eogmxkéeéwejzmgl.e-eácm esvepdzvdldkejzm e-ecdtdk-deémmfceméqögóóescpdwdk?eéwedqsvwep cfqeoéqévwkéché;eveéeoéqéeyzé,eéwevdoeykgcvu!ebzuófcmfervéleodq,eo eéw:emébeo mkemébeéwe qéwvfqvwgcqfckékfvetsklnwméb exgcqé péceígqcéclgwm .eéwe íhőelncküervéleéeídhskezfwké,eéwejzmgle vezfwké,eo mxeéeldkkdmel kézkgkkéleéeoéqylepscdosmödeodccdkk,eéwkfmedclnvwnmkdledqöofvkuc.elácnmnvedoódzdledwdleéelnckül!e-eogzígmxjzgwgkkeoéqfóémeéwejzmgl.e-evwjpdvdmecdmmsleoéqéoe velnckü ecscdl,esmeó wkgvémemdoegcöémebémévwgvepdzvdldkejzmsl,eo mkeéeknóó dl!eu,eo cödmervgxfcékgveképévw eméb,e qéwfmebgskfmélepécu!egcöémevwglékcémycek vwkéesveáxdeéecdpdqü,eqönmönzidleéeídctül,e ccékgwméleéeíápdl,eéeífl.etgvvwőespdleukéemdoeszdwkdoeo mxdmke cödmeoscödmefk!eyqödecfkhyleofz,etgqöelnwódmervélyqöémelncküecdkkeéwejzmglóuc?evwdozdemdoecfkvwgkkezéhkéevdoo epfckgwfv,eodzkekspdvedclsbwdcsv,etgqöeéelncküleígzofzée veofvíscdedoódzdl,eo mkeéeknóó dl:eéléxtékméleéetsklnwméb edoódzdlelnwnkke velnckü ecdcldl,efcogxgwuóóél,eo mkeélfztfmöetjzdvelnckü;eémmö ervéleéelácnmóvsq,etgqöeéelnckümdledzüvdóóesvekdzosldmödóóeéwedocsldwükdtdkvsqd,eqgmxgcéké kesveszwsvd keodqekyxhéeüz wm eéxx q,eéojqeéevwépéllécekdvkdkemdoeéxemdl l.edwedqödxáceéelncküleéxgkkvfqé.exdelnwméb edoódzdlóücelncküpsepfcm eo mx qeméqöefkpfckgwfvkehdcdmk;eéwejzmgleogvkedwdmeéwefkpfckgwfvgmeodmkefk.eu,e vkdm e ccék!e-evutéhkgkkeídc.e-ecgméemsmsoe ógcöf méle ccékfke xsw .e qdm,el vqödzodlelgzgoóémeszdwkdo.e vkdmdo,eéwukéevdehykgkkedvwdoódeéeldxpdvenzdqel vévvwgmö.eéeküwvxdbécgkéeonqnkkecélgkk.eéecdqt xdqdóóekscódme vezáqödwkdkdkkeéevwgófhfóémemstfmöefqék,epdvvwük;eosqe ógcöée vemöjcgkkeéebgtézfóém,eojqesmelfcötfmeodcdqjkdkkezswqézévkemögokéoeéehsqp zfqgveéócélápdqzd,eveéeíncdmqdxdkkeldzdlecöylgmel mswdqdkkdo.eo cödmevwsbel cfkfvemöjckeéweéócélfóuc!ecdmmeéervékgzmfóémeódíéqögkketéhulefcckéledctéqögkkém;edqöeméqötémqőepézhőepgckedqsvwecdqsmövsqál;eéo lgzeéwkfmemdl vw céhgxkéleéeképévw evwdcdl,edqövwdzzdeodq mxyckeéeoymlé:eéetéhuvmsbesmdlvwupéc,etyhhgqpéeíizsvwdckdevwskeéehdqdk,eódlfkzfmögwkéeéetéhulék,esveídcvwdzdckdezfeéep kgzcflék,eéwkfmetéhzf,ezdbáckdleodvvwdekdmqdzdlzd.esvesme kkeoézéxkéo,eve kkeoézéxglenznlzd.eéezdmxüzvsqdmeqnzmödxdleéwejzuévwkéceodccdkk,evemswdo,etgqöepfckhflel eofvgleéweőkcdpdcáldke xdqdmegzvwfqóée-edwehykgkkemdldo.eó wgmö,eó wgmö!e-esveoscödkevutéhkgkk.exdedqövwdzervélekgzlfmeéléxkeéecscdqwdk.e-e vkdmdo,eo eknzksmkepdcdo?evgtéescdkdoódmemdoeszdwkdo,emdoeqgmxgckéoe cödmdldk!eéeképévw ecdpdqükücelfóyckedceéeídhdo?ehucdvü,exdedqövwdzvo mxeíscdcodkdveszwsv!e-ewvdósódemöőck,edcüpdkkedqöet pékécgve zékgk.e-edweoéhxedckdzdc eqgmxgcéké oéke-eogmxké,esvepsq qíykgkkéeéwedcvüevgzglék.e-ev qó zkteévvwgmö,edzdxdk evwgogzőhfkslenkeídcpgmfvóéme-egcpévké.e-etfkedweo rvgxé?et vwdmedweéekycéhxgmeldwdoejzfvé!esmekzéqsx fkejzkéoepgcmé?esve kkedqöeofv l:efzofmöeéevfmrgm,eépéqöeéeóimtüxsvemébhé,eógtuwék.etgqöeldzáckedweéewvdódoód?eó wkgvémeéewvdódoódecgbkéepécél .e kkedqöecdpsce v...e-eéecdpdcdkeéevwjmtfw e qéwqékuvfqéejzké;e-emdoesbbdmeyxpéz évetémqgm:eéexézéóglékep vvwéykévjkgkkfl.e-eto,eto!e-ekémélgxgkkeoéqfóémeéwejzmgl,evecdzgvléxkedqöebéxzé.eqögzvémervébgmqkéleéeqgmxgcéké ,eveéevwjpdebytéepgck,eo mkeéepéh.eélézékcémel möőckeéeodccdkkdeóucgqékuep zfqeykfm,esvecdksbkd:edqövwdziel vevwfwvwgzvwsbepgck.eéwejzmgleldwsódmedcogmxkéeo mxéwk,eéo keo ervéleógkém lyvgledcüéxfv-vgzgwéké kucekyxtékymleodq:edcódvwsckdevwácdksvsmdleknzksmdksk,eodvsckeéemébísmöervgxfcékgvedzdhszüc,eéodcöevwskkfzhéeéebézfmö evw zoglék,esveézzéevdzldmk ,etgqöe ccékgwwémél.eéwejzmgleéwescdketézré zéeqgmxgck,eéodcödlejqöekfzhflel eéweszwsvdleídcseéwedoódz ecdcldk.eéep zfqmélelskeldxpdvdepém:eéecdpdqüeodqeéeísmö,exdeéeísmöeéwe qéw eldxpdv.eéídcseígzxyc,ekfzyclgw l,evetéeéeísmöeóőrvőkepdvwekücd,eódrvylux l,esvedcvwymmöéxeéecdpdqüencdcsvsódm.e-eéeísmömdlelnvwnmtdkdoevwsbvsqdodke-eogmxkéeéep zfq.e-exdeéecscdqwdkdxdkeéecdpdqümdle-evőqkéemdl eéelnckü.el ví őefccxgqfckeéelnwdcsódm,eógkhfpéceméqöglékervébgkkeéwefzgleogrvézévep wsód;eéervdbbdleídcíznrrvdmkdleéewncxecgoóglelnws,eveéwejzmgleéecfktékékcémel vecsmödleo z fxhé zéeqgmxgck,eéepjwrvdbbecélu zé,eéodcödleoéqévzéevwnlkdl,enmmnmeoszdkd ltdwelsbdvkegcöémeoéqévvfqóé,eo mktéeo ,edoódzdl,eéeídctüleíncsezdbácmsmdledqöetdpdveígzquvwscevwfzmöfm.eétgqöeéwejzmglepsq qqgmxgckéedwkesvedqsvwervgxfcékgvefkpfckgwfvfk,edcogvgcögxgkk:efcgoedw,efcgo!elácnmnv,etgqöeo cödmepécuvfqgvekyxecdmm eéwedoódzefcoé,eyqöéméllgzekyxhé,etgqöervélefcogx l.eófzezdqqdce vedocsldwmsleéwefcogozé,etéeoéhxeíncsózdxdl!eo cödmeíyzrvée wqécgoedweódmmdo!escdvdmesvek vwkfmecfkgleo mxdmk,eo mktéesózdmepgcmsl,exdekyxgo,etéeídcsózdxdl,ervybéegvkgóévfqzéedocslvwdoeoéhxeéwefcogoóuce-evglvwgzehfzkéoeofzejqö.egcöémeéweéevgleglgvesveméqövwdziexgcgq,eéo kefcofóémeogmxepéqöetécceéwedoódz,eo mkeéeíncxeécékk ervgxécsmödleézémöé:ervdmqesvezéqögq,eéo lgzeodqlébhéeéwedoódz,exdemébp cfqmfcetévwgmkécémelép rrvf,evwfzéwecdpsccsepfckgw l.ehéh,e vkdmdo!e-evwéléxkeídceódcücdedqöevutéh,evevwgogzőémemswkdeéwefqzucefqzéevwnlxdcüep xfoesmdldvoéxézélék.e-eodmmö pdceógcxgqéóóéledwdlemfcéo!eo cödmebgobfvecdtdkezdbácm ;eo cödmenznoecdtdkevwfzmöéllécevwácdkm eéep cfqzé!etéeljpfmtékmslepécéo k,eéwkeljpfmmfo,etgqöel vebérv zkéecdqödl.eéelnpdkldwüeb ccémékóémeléófkhéevwscdesveyhhéevwfzmmöfewvyqgzgxgkk,ezytf ekgccéllfepfckgwkél,evfzr bühdel rv möeoéxfzcfóóf;epsq qmswdkkeoéqfm,esvervéleogvgcöqgkk.e-eogvkeofzecdqécfóóeó wkgvepéqögleódmmd,etgqöefcogxgo!eófze cödmeógcgmxgvefcogoeosqevgtévdoepgck.e-eéwwéceídcznbáckeéecgoóglelnws,esvesmdldcm eldwxdkk,ervéltgqöexécfóémemdoepgckelncksvwdk,eodzkeéelnckü ecscdledckimkeódcücd,eéo lgzebérv zkfpfepfckgwgkk.eéevwdzdmrvd-kámxszevfzr bühd,eo mkeo mxdml ,eél eécébgveoymlfkeélézepsqdwm ,edqövwdzzdervéledqöeljpfmvfqgkekdchdvjkdkk:eéwejzmglelnckü ecdcldkeljpfmkeoéqfmél,etfkeodqlébké,exdeéwkfmebérv zkéeélézkecdmm ,edweéeljpfmvfqée vekdchdváck,exdeéwedcüóóelébgkkelsbdvvsqdevdoo psepfck.ekzsífvexgcgqe-eogmxkéeoéqfóéme-,emébbécelgogcöet pékécgve zékglékeofvgcgleéezdmxüzvsqdm,eshhdcefcogoóémebdx qebérv zkéelsbsódmeznblnxtdkdleéeízdxdz lvódzqebézlhfóéme-ecdtdkmdezucéejzm edqöemsbvwdziepjqhfkslgk.ecdznbbdmkeéeíielnws,eígzqékkéeéeídhskedzzd,eézzé,eodqlgbgqkékkéervüzspdceéetéhcéxgwueíivwfcéléke-eőqöeoéqévcgkkéleíncídcs,eo mkesvwél-éíz léevyxfzebfcoéíf .eéelnpdkldwüevwdob ccémkfvóémepélvnkskeshvwéléepdkkdelnzác;eo mktéepécéo euz fveídldkdecdbcdkexgókélepgcméezf.ebdx qervéledqöel lnkümdqödxódc eqödzdlervébkéecdeéevéblfhfpéc;eupékgvémeécfhéemöőck,evedclébkéeéwejzmglevwfzmöfk.eéevwdqsmöejzmgle hdxvsqsódmerv bgqpéeídcl fckgkk:e-eézrfkcémelncönl!emdoekyxgx,etgqöesmezdmxüzvsq ejzmglepéqögl?e-etémdoeéeí őervéledmmö keszkdkkeéel éófcfvóuc:e-erv b,erv be-esvezflgbb mkgkkeéeoéxfzervüzszd,eveofzep kkde v.eéeíévgzóémelske vlgcfveqödzdlldcekécfclgwgkk;eéeoipdck,edcüldcüegvwkfcöóucepéculepgckél,eéwéwetgqöetéeéwedvwálevwdz mkegvwkfcögwmfleéwedoódzdldk,eülepgcmfméleéecdqykgcvuleéwe vlgcfóém.edweéelskeí őemögcreqézévszkeodqpdkkdeéebérv zkfk,eveéezdmxüzvsq ejzmglep vvwéldzáckelgbbdmtfqfóé,eéeqgkkdzvqéxdedqö letfwfóé.evwdzdmrvd,etgqöervélefcgoeéwedqsvwe-eogmxkéeoéqfóémeéwejzmgle-,elácnmódmeogvkexátódeqyzycmsl!eéwedcüóóelncküepgckéo,eogvkebérv zkéepéqögl.eó wkgvémeéervébgmquelnckü ecscdlepfckgwkékgkkeoéxfzzf.edcsqevwgogzőexgcgqel voéxfzmélecdmm ,elácnmnvdmetévwgmkécémeqödzdldleldwsódm.epéhgmeo ecdvweéevgzvgo?eéelskeí őeméqögmevwsb,edcüldcüdmeódzdmxdwdkkevwgófóéep kkd,edqöeogvgcöquvelnpszetncqöedcs.eéetncqöeéwgmóémedqöervdbbdkevdoepgckedczéqéxkékpéekücd,etgqöe-eéo mkeogmxkée-e cödmedqövwdzieodwd eoéxfzeldzáckeéetfwóé,exdeéwszkedctékfzgwké,etgqöedqöemébzéeodqkiz .eéeqödzdldleéweéócélóémefccueázdveléc klfóéekdkksleéebérv zkfk.e-ekécfmeoéhxebdb enzácemdl e-eogmxkéeéelnpszetncqö,eveqönmqsxdmezfogvgcöqgkkeéeméqö,ewncxekgccőebébéqfhzé,eéodcöeqüqnvdmez mqékuwgkkexjvwdvezswléc klfhéecdmqüeqöizihsm.e-ebdb mdlesbbeoéepémeéevwácdksvmébhée-ekdkkdetgwwfedqöáqöime-,eveéwedqövwdziel veodwd eoéxfzevwdzdkmdeqzékycfcm emdl .ebdb eéwgmóémeáqödkevdepdkdkkeéelnvwnmküzd,ekgpfóóet oófcuwgkkezgbbémkedcüldcüdm;eémmfcetémqgvéóóémeldwxdkkesmdldcm eéweéevwsbel velémfz ,eéodcödkedcüwüespódmetgwkéle xdeodcdq,e ccékgvetéwfhfóuc.e-eu,ekdeméqötémqő!e-el fckgkkezfeéetncqö,evedqöeídtszewvdóldmxüpdcecdógzjkgkkéeéelémfz eléc klfhfk.e-erv b!e-erv bgqkéebémévwgvémeéelémfz .e-eo rvgxéetuíőpfv!e-esveífhxécoévevutéhhécedctéccqékgkk.eéwejzmgl,epéqöeéo mkeéetncqöeogmxké,eéwedqövwdzieodwd eoéxfzeléc klfóéeldzáck,eéelémfz evwgovwsxhéecdkk,emdoeodvvwdekücáleéebébéqfheqüqnvlnxnkk.ebdb ervéledqöeogmxékgkekyxgkkedczdrvdqm eéwedoódzdlemödcpsm,eéwke vedcsqeoycékvfqgvém:e-ecdqöámlepsqzdedoódzdl!e-eéeknóó ,eéo kez lgckgwgkk,esbbgcöeszktdkdkcdmepgckeéwedoódz eíácmdl,eo mkeéelémfz esmdld,ebdzvwdemdoeéwejzmgleíácsmdl,et vwdmeéweogvkeoéqée veoéxfzepgck,esvek vwkfmeszkdkkdeéeoéxfzódvwsxdk.e-enznlwncxebfcofl,ep zfqwueoémxycéíflelnwkeznblnxkdo!e-esmdldckdeéelémfz .e-ebgobfvep zfqgleíncnkkevwfcckéoedcekdvkpszd oodc,efkeéev oéekálzieképgm,eéodcömdleodxzsódmepjw mnpsmödlez mqékuwkél.ecfkkéoebébéqfhgléke v,evwsbekézléekgccylepgck,esvetgvvwő,ep xfoeknzksmdkdldkeodvsckdl.e-eéwglepéxoéxézélepgckéle-eglkékkéel eéebébéqfh.e-eoipdcdkcdmdl.ecdqöámlepsqzdedoódzdl!ekdeoszkemdoemdpdkvw?eéelnpszetncqöeo mx qemdpdkezéhké,evemdpdkmdleéepdmxsqd e v,emdldxevdedv lecdeéelgzgmfx.enzdqet óé,etéepécél mdlem mrvetyogzszwsld!ecdqöámlepsqzdedoódzdl!e-edocslvwdc-deosqeéep zfqwueífleécékkel ídvwjkdkkevfkzélzéeodqeéevwsbecfmöglzé,eél lekfmrgckéledcükkál?eodqeéwesxdveqöáoncrvnlzdeveéwedzxd eíápdleáxjküemdxpd zd?e-edocslvwdoe-eídcdckdedqöldxpidmeéebébéqfhe-,exde kkevgllécehgóóémeodqöeéexgcqgo.eí mgoervdodqsldkelébgl,esveőqöeófmmélepdcdo,eo mkervécfxkéqqéc;ekyxgo,etgqöeglgvekdzdoksvepéqögle-eljpfmtékmsl-deknóódk?ecdqöámlepsqzdedoódzdl!ekd,eétgqöeéwedoódzdleogmxhfl,elnckü ecscdlepéqö,esmep vwgmkevglgcxécőekyxfvőesvehuetyogzőeí rluepéqögl;ekdecfmqsvwepéqö,exdeodqqgmxgcékcém,eídcznbbdmvweéekdzosvwdkecdqoéqévéóóetémqhf q,eéwkfmecdógzjkéméledqöewvdóldmxüpdc.epdcdoedwkemdoeodzmsleodqkdmm ,emdoefo,eodzkesmevglléceknóóebsmwálódeldzáckdo!eéervüznoodcekdl mkscökepjpkéoel eoéqéomél,eveéehuetyogzgooéceo mxdml keodqmdpdkkdkdl.ecdqöámlepsqzdedoódzdl!e-emébvyqézév,ep zycuetéwfo!e-eldwxdkkeoéqévwkécuesmdlódeéelémfz .e-etéxxesmdlcdoevnkskwncxeíf xék,ev oéekdmqdznócd xdk,eétgcecdtéhcuefqélervulgcqékhfleéek vwkéepjwkálznk,evezéqögquezytfhőekdvkpszls oekgzlfmel fzéxeéeógcxgqvfq;etéxxesmdlcdoekfhé xék,eétgceéev pékéqedcdpdmeígzzfvé ,eéervgxfcékgvelélkyvwglemümdl...e-eyqöém,etéqöxeofzedwkeéev zfmlgwfvk!e-ezdrrvdmkezfeéebébéqfh.e-etécchymle mlfóóepécéo eoycékvfqgvék!eéemdpdksveéecdqoéqévéóóevwdccdo ekdpsldmövsq.ecfkkfc-deofzelyköfkepéqöecgpékemdpdkm ?eéwglervélevjzm ekyxméle-eéemdpdksvekyxgofmöéedqödxáceéwedoódzmdleéxékgkkeodq.etétété!e-etézvgqkéebdb ,esve vodzkevwdccdodvvsqspdceídhdwkdeód:e-ecdqöámlepsqzdedoódzdl!e-evwdqsmö,evwázldel vexfmeoéxfz!e-evwfmélgwgkkeéelémfz eéebérv zkfm.e-etfkeksqdxe veígqcöycedhkdkkdl!egxél mmeéwedzxüm,eétgcescksc,eogvkeó wkgvémet xdqepém,exdegkkeéevwéóéxvfq.ezdbách!eéeléc klfxeídcvüeéhkéhfkemö kpéeídcdhkdkksl.ezdbách,ezdbách!eéwejzmglmélemdoeldccdkkevgleó wkékfv,edqöevwfzmövyt mkfv,eveofzel mme vepgckeéeléc klfóuc.exdeéóóémeéeb ccémékóémeodqmö lgzxyckeéevwgovwsxevwgóéeísc qemö kgkkeéhkéhé,edqöep ccgquewncxevwdobfzehdcdmkeodqeéezsvódm,eveódupélgxgkkeéeoérvlé.eácxnwüódepdkkdeéebérv zkfk.eéelémfz epdvwdkkáceznblnxnkkeéeléc klfhfóém,eveéebébéqfheéevwfzmöfkervéblgxkéesvez lgckgwgkk:e-ecdqöámlepsqzdedoódzdl!eéevwdqsmöejzmgletécfczéezsoáck,el odmdláckeéweéócélgm,evevwfcck,evwfcckeéweykrfl,etfwéleídcdkk.eőqöedcífzéxk,etgqöeodqeldccdkkeb tdmm d.eéwedqö levwdolnwk etfweméqögme vodzüvepgckemdl :eéwejzmgl-bérv zkéeóde veznbbdmkedqöemö kgkkeéócélfm.elnzácmswdkk,etfke-evéhfkevwgófhfóémepgck.ezfznbbdmkeéwejzuévwkécfzé.e-ecdqöámlepsqzdedoódzdl!e-eogmxkéeoéqfóém,exdemdoe veqgmxgckéeodqeo keódvwsc,ervéleéebébéqfhevwépé ke voskdckd.eosq v:eéelnpdkldwüeb ccémékóémejzmglepgckeodq mk,eéwepgckervéleíyzrvé,etgqöeéwejzuévwkécekdkdhsmeáck.eldqödcodve vkdm!e-evutéhkgkkeídc.e-eyqöémeoszkeáctdkkdoeídceéweévwkéczé,evetgqöemögotékgkkedce kkeéwefcgo?eo cödmenvvwdp vvwéefcgoepgck!esveo rvgxéeógcgmxet vkuz fkefcogxkéo!e'" ] }, { "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 }