[Duke luajtur muzikë] ZAMYLA Chan: Le të zbatojë Vigenere, një pak më siguruar shifrën se Cezarit. Plain text është enciphered duke përdorur një varg në vend të një numër të plotë. Secili karakter alfabetik në plain text është zhvendosur nga një letër ne fjale. Në këtë shembull, fjalen ohai, O korrespondon me një zhvendosje të 14; H tek nje zhvendoset nga 7; një ndryshim, të 0; dhe unë një ndryshim i 8. Nëse ju keni zbatuar me sukses tuaj Cezari shifër, ajo do të jetë një e bukur Kuadri nga të cilat ju mund të zbatojë Vigenere. Siç mund ta shikoni, drejtimin e një Vigenere shifër me një karakter të vetëm si një fjalë kyçe është e njëjta gjë si një shifër Caesar. Hapat e njëjta zbatohet për Vigenere siç bënë në Çezarit. Keyword është linja e dytë komandës Argumenti, kështu që ju të hyni në atë me argv1. Atëherë ju keni nevojë për të verifikuar se çelësi Fjala është me të vërtetë të gjithë alfabetik. Këtu është vendi ku është alfa mund të vijnë në volitshëm. Nëse ju keni një të vlefshme fjalen, ju merrni forca nga përdoruesit, dhe pastaj ju jeni gati për të shifroj. Formula Vigenere shifër është e ngjashme te Cezari formule, me përjashtim tani k bëhet i j k subscript, duke treguar j-th letër e fjalen. Le të futemi nëpër këtë proces. Thuaj ju kërkuar për të dërguar një mesazh për të tuaj përplasje, unë si ju, por ju nuk e bëni duan të gjithë të dinë. Pra, ju përdorni një shifër Vigenere me panda fjalen, sepse, mirë, ju gjithashtu si pandat. Letra e parë, unë, do të jetë zhvendosur nga p, duke i dhënë x, 15 gërma pasi unë, 15 sepse është p 16 letër e alfabetit. Letra e ardhshëm në tekst të thjeshtë është një hapësirë, kështu që nuk do të jetë zhvendosur. Dhe indeksi i fjalen nuk do të ndryshojë. Pastaj shkronja tjetër në tekst të thjeshtë është l, zhvendosur nga nje, i cili nuk zhvendoset letër plain tekst në të gjitha, sepse a eshte 0-os letër e alfabetit. Procesi vazhdon, avancimit Karakteri fjalen çdo herë ka një letër në tekst të thjeshtë. Pasi Letra e fundit ne fjalen është arritur, fjalen dhe përfundon rreth ndërrime në rrafshinë e ardhshëm letër teksti nga p. X lvne Noh. Sa romantike. Dhënë kështu një karakter, si mendoni ju konvertojë se në korresponduese shifrojë ndryshim? Provoni krahasuar ASCII Vlerat e në ndryshim. Ndoshta ju mund të gjeni një marrëdhënie në mes të shkronjave dhe të tyre indeksi alfabetik përdorur matematikë ASCII. Ju mund të shtoni ose të zbres një karakter nga një tjetër për të marrë ju rezultati i dëshiruar? Mos harroni se për ndërrime uppercase dhe letra vogle janë të njëjta. Pra, ndoshta ju do të duhet për të identifikuar dy formula të ngjashme për të përfaqësuar zhvendosje, një për një uppercase karakteri fjalen, dhe një për një të vogle. Tjetra, mos harroni se përparimet fjalen vetëm nëse karakteri në plain text është një letër dhe se rasti i thjeshtë Teksti duhet të ruhet. Pra, nëse ne shikojmë në formulën për Zhvendosje Vigenere, ka dy indeksi variablave, i dhe j. Njëri mban gjurmët e pozitës në plain tekst, dhe tjetri pozicioni ne fjale. Por thjeshtë teksti juaj mund të jetë shumë më të gjatë se fjalen tuaj, në të cilin rastin tuaj Indeksi fjalen nevojë për të përfunduar rreth mbrapa te fillimit te kyce. Si do ta bëni këtë? Le të shikojmë mbrapa në Operatori modulo. Modulo është përkufizuar eshte pjesa i ndarë dy numra. Por ajo është një praktike aktuale përdorimin e modulo? E pra, thonë se ju keni një grup të madh të njerëz, dhe ju duhet të ndahet në tre grupe. Një mënyrë për të ndarë njerëzit në grupe është që ata llogarisin off. Ju numri grupin grupet numër 1, 2, dhe 3. Personi i parë do të thonë se 1, 2 e ardhshëm, 3 Next. Personi, pasi që do të thonë se 1, sepse atje nuk eshte nje grup 4, dhe fillon numërimin përsipër nga atje. Ju mund të përdorni për të modulo bëjë të njëjtën gjë. Këtë herë, grupet do të jenë grupi 0, 1, dhe 2. Personi i parë, numri i 1 modulo 3, eshte 1. Person modulo 2 3 është 2. 3 Person modulo 3 është 0. 4 Person modulo 3 jep 1, dhe kështu grupet mund ta mbështillni rreth. Pra, nëse ju merrni një indeks dhe modulo se indeksi nga një madhësi maksimale, Rezultati kurrë nuk do të jetë më e madhe se, ose të barabartë me madhësi, do të thotë që ju mund të rrisin indeksin si më shumë që ju dëshironi. Dhe për aq kohë sa ju modulo indeksin nga disa numër, ju nuk do të merrni një numër më të mëdha se kaq. Pra, ne kemi 10 njerëz në vend të 5, dhe ata do të të gjithë të caktuar për grupet e Numri 0, 1, ose 2. Mundohuni për të aplikuar këtë mbështjellës mbi fjalen, përveç në vend të sorting njerëzit në numrat e grupit që ju dëshironi Indeksi i fjalen kështu që ju mund të të marrë karakterin e duhur për zhvendoset pa e tejkaluar gjatësia e vargut. Me këtë, ju keni tuaj Vigenere shifër. Emri im është Zamyla, dhe kjo është CS50.