[CHWARAE CERDDORIAETH] ZAMYLA Chan: Dewch i weithredu Vigenere, mae ychydig yn fwy sicrhau cipher na Cesar. Mae'r testun plaen yn cael ei enciphered ddefnyddio gyfres yn lle gyfanrif. Mae pob cymeriad yn nhrefn yr wyddor yn testun plaen yn cael ei symud gan llythyr yn y gair allweddol. Yn yr enghraifft hon, y gair allweddol ohai, O yn cyfateb i newid o 14 oed; H i symud o 7; A, symud o 0, ac yr wyf yn newid o 8. Os ydych chi wedi rhoi ar waith yn llwyddiannus eich Cesar cipher, bydd yn cael ei 'n glws fframwaith yr ydych Gall gweithredu Vigenere. Fel y gallwch weld, rhedeg Vigenere cipher gyda chymeriad unigol fel keyword yr un peth fel cipher Caesar. Yr un camau yn berthnasol i Vigenere fel y gwnaethant yn Cesar. Y gair allweddol yn yr ail linell orchymyn ddadl, er mwyn i chi gael gafael arno gyda argv1. Yna, bydd angen i chi gadarnhau bod yr allwedd gair yn wir i gyd yn nhrefn yr wyddor. Dyma ble mae alffa gallu dod i mewn 'n hylaw. Os oes gennych air allweddol dilys, byddwch yn cael y cryfder gan y defnyddiwr, ac yna ydych yn barod i encipher. Mae'r fformiwla cipher Vigenere yn debyg i Gesar fformiwla, ac eithrio yn awr k yn dod yn k isysgrif j, yn dangos y j-fed llythyren y gair allweddol. Gadewch i ni gamu trwy'r broses hon. Dywedwch eich bod chi eisiau anfon neges at eich damwain, yr wyf yn hoffi i chi, ond nad ydych yn gwneud am i bawb ei wybod. Felly, byddwch yn defnyddio cipher Vigenere gyda'r panda keyword, oherwydd, wel, byddwch hefyd yn yn hoffi pandas. Bydd y llythyr cyntaf, I, yn cael eu symud gan p, gan roi x, 15 llythyr ar ôl i mi, oherwydd bod 15 p yn y 16eg llythyren o'r wyddor. Y llythyr nesaf yn y testun plaen yn lle, felly ni fydd yn cael ei symud. A'r mynegai y gair allweddol ni fydd yn newid. Yna y llythyr nesaf yn destun plaen yn l, gan symud, nad yw'n symud y llythyr testun plaen o gwbl, oherwydd mae a yn y llythyr 0fed o'r wyddor. Mae'r broses yn parhau, hyrwyddo'r cymeriad keyword bob tro y mae yna llythyr yn y testun plaen. Unwaith y bydd y llythyr olaf yn y gair allweddol yn gyrraedd, yr allweddair lapio o gwmpas a sifftiau i'r blaen nesaf lythyr testun drwy t. X lvne Noh. Pa mor rhamantus. Felly, o ystyried cymeriad, sut ydych chi'n trosi hynny yn y cyfatebol cipher sifft? Ceisiwch gymharu ASCII gwerthoedd y newid. Efallai y gallwch ddod o hyd i berthynas rhwng y llythrennau a'u mynegai yn nhrefn yr wyddor gan ddefnyddio mathemateg ASCII. Allwch chi ychwanegu neu dynnu un cymeriad oddi wrth ei gilydd i gael i chi y canlyniad a ddymunir? Cofiwch fod y sifftiau ar gyfer priflythyren a llythrennau bach yr un fath. Felly, efallai y bydd angen i chi nodi dau fformiwlâu tebyg i gynrychioli'r sifft, un ar gyfer priflythyren cymeriad keyword, ac un ar gyfer un llythrennau bach. Nesaf, cofiwch fod y datblygiadau keyword dim ond os yw'r cymeriad yn testun plaen yn llythyr a bod achos y blaen Rhaid testun yn cael eu cadw. Felly, os edrychwn ar y fformiwla ar gyfer Newid Vigenere, mae dau fynegai newidynnau, i a j. Mae un yn cadw golwg ar y sefyllfa yn y blaen testun, a'r llall yn y sefyllfa yn yr allweddair. Ond efallai y bydd eich testun plaen yn llawer hirach nag y mae eich allweddair, ac os felly eich Mae angen mynegai allweddair i lapio o gwmpas yn ôl i ddechrau'r gair allweddol. Sut ydych chi'n gwneud hyn? Gadewch i ni edrych yn ôl ar y modwlo gweithredwr. Modwlo yn cael ei ddiffinio yn y gweddill o rannu dau rif. Ond beth yn union ymarferol defnyddio modwlo? Wel, dweud eich bod wedi grŵp mawr o bobl, ac mae angen eu rhannu yn dri grŵp. Un ffordd o rannu pobl yn grwpiau yw cael eu cyfrif i ffwrdd. Rydych yn rhif y grŵp grwpiau rhif 1, 2, a 3. Bydd y person cyntaf yn dweud 1, y 2 nesaf, y 3 nesaf. Y person ar ôl a fydd yn dweud 1, gan nad oes grŵp 4, ac mae'r cyfrif yn dechrau drosodd oddi yno. Gallwch ddefnyddio modwlo i gwneud yr un peth. Y tro hwn, bydd y grwpiau yn grŵp 0, 1, a 2. Y person cyntaf, rhif 1 modwlo 3, yw 1. Person 2 modwlo 3 yw 2. Person 3 modwlo 3 yw 0. Person 4 modwlo 3 yn rhoi 1, ac yn y blaen gall y grwpiau lapio o gwmpas. Felly, os ydych yn cymryd mynegai a modwlo y mynegai gan uchafswm maint, y Ni fydd canlyniad yn fwy na neu'n gyfartal i faint, sy'n golygu eich bod yn Gall gynyddu mynegai fel gymaint ag yr hoffech. Ac ar yr amod eich modwlo y mynegai gan ryw nifer, ni fyddwch yn cael nifer yn fwy na hynny. Felly mae gennym 10 o bobl yn hytrach na 5, ac byddent i gyd yn cael ei neilltuo i grwpiau rhif 0, 1, neu 2. Ceisiwch i gymhwyso hyn i lapio dros y keyword, ac eithrio lle eu trefnu pobl i niferoedd grwpiau yr ydych am i'r mynegai y gair allweddol fel y gallwch cael y cymeriad cywir ar gyfer y symud heb fod yn fwy na'r hyd y llinyn. Gyda hynny, mae gennych eich Vigenere cipher. Fy enw i yw Zamyla, ac mae hyn yn CS50.