1 00:00:00,000 --> 00:00:10,101 >> [CHWARAE CERDDORIAETH] 2 00:00:10,101 --> 00:00:12,700 >> ZAMYLA Chan: Dewch i weithredu Vigenere, mae ychydig yn fwy 3 00:00:12,700 --> 00:00:14,710 sicrhau cipher na Cesar. 4 00:00:14,710 --> 00:00:19,670 Mae'r testun plaen yn cael ei enciphered ddefnyddio gyfres yn lle gyfanrif. 5 00:00:19,670 --> 00:00:22,970 Mae pob cymeriad yn nhrefn yr wyddor yn testun plaen yn cael ei symud gan 6 00:00:22,970 --> 00:00:24,450 llythyr yn y gair allweddol. 7 00:00:24,450 --> 00:00:30,860 >> Yn yr enghraifft hon, y gair allweddol ohai, O yn cyfateb i newid o 14 oed; H i 8 00:00:30,860 --> 00:00:36,910 symud o 7; A, symud o 0, ac yr wyf yn newid o 8. 9 00:00:36,910 --> 00:00:40,710 Os ydych chi wedi rhoi ar waith yn llwyddiannus eich Cesar cipher, bydd yn cael ei 'n glws 10 00:00:40,710 --> 00:00:43,510 fframwaith yr ydych Gall gweithredu Vigenere. 11 00:00:43,510 --> 00:00:47,140 Fel y gallwch weld, rhedeg Vigenere cipher gyda chymeriad unigol fel 12 00:00:47,140 --> 00:00:51,830 keyword yr un peth fel cipher Caesar. 13 00:00:51,830 --> 00:00:55,170 >> Yr un camau yn berthnasol i Vigenere fel y gwnaethant yn Cesar. 14 00:00:55,170 --> 00:01:01,240 Y gair allweddol yn yr ail linell orchymyn ddadl, er mwyn i chi gael gafael arno gyda argv1. 15 00:01:01,240 --> 00:01:05,400 Yna, bydd angen i chi gadarnhau bod yr allwedd gair yn wir i gyd yn nhrefn yr wyddor. 16 00:01:05,400 --> 00:01:09,040 Dyma ble mae alffa gallu dod i mewn 'n hylaw. 17 00:01:09,040 --> 00:01:13,550 Os oes gennych air allweddol dilys, byddwch yn cael y cryfder gan y defnyddiwr, ac yna 18 00:01:13,550 --> 00:01:15,820 ydych yn barod i encipher. 19 00:01:15,820 --> 00:01:20,840 >> Mae'r fformiwla cipher Vigenere yn debyg i Gesar fformiwla, ac eithrio yn awr k 20 00:01:20,840 --> 00:01:27,650 yn dod yn k isysgrif j, yn dangos y j-fed llythyren y gair allweddol. 21 00:01:27,650 --> 00:01:29,640 Gadewch i ni gamu trwy'r broses hon. 22 00:01:29,640 --> 00:01:34,060 Dywedwch eich bod chi eisiau anfon neges at eich damwain, yr wyf yn hoffi i chi, ond nad ydych yn gwneud 23 00:01:34,060 --> 00:01:35,190 am i bawb ei wybod. 24 00:01:35,190 --> 00:01:39,800 Felly, byddwch yn defnyddio cipher Vigenere gyda'r panda keyword, oherwydd, wel, byddwch hefyd yn 25 00:01:39,800 --> 00:01:41,160 yn hoffi pandas. 26 00:01:41,160 --> 00:01:47,140 >> Bydd y llythyr cyntaf, I, yn cael eu symud gan p, gan roi x, 15 llythyr ar ôl i mi, 27 00:01:47,140 --> 00:01:52,850 oherwydd bod 15 p yn y 16eg llythyren o'r wyddor. 28 00:01:52,850 --> 00:01:56,750 Y llythyr nesaf yn y testun plaen yn lle, felly ni fydd yn cael ei symud. 29 00:01:56,750 --> 00:02:00,420 A'r mynegai y gair allweddol ni fydd yn newid. 30 00:02:00,420 --> 00:02:05,440 >> Yna y llythyr nesaf yn destun plaen yn l, gan symud, nad yw'n symud 31 00:02:05,440 --> 00:02:10,930 y llythyr testun plaen o gwbl, oherwydd mae a yn y llythyr 0fed o'r wyddor. 32 00:02:10,930 --> 00:02:14,980 Mae'r broses yn parhau, hyrwyddo'r cymeriad keyword bob tro y mae yna 33 00:02:14,980 --> 00:02:16,840 llythyr yn y testun plaen. 34 00:02:16,840 --> 00:02:21,850 Unwaith y bydd y llythyr olaf yn y gair allweddol yn gyrraedd, yr allweddair lapio o gwmpas a 35 00:02:21,850 --> 00:02:25,890 sifftiau i'r blaen nesaf lythyr testun drwy t. 36 00:02:25,890 --> 00:02:27,170 X lvne Noh. 37 00:02:27,170 --> 00:02:29,180 Pa mor rhamantus. 38 00:02:29,180 --> 00:02:33,120 >> Felly, o ystyried cymeriad, sut ydych chi'n trosi hynny yn y cyfatebol 39 00:02:33,120 --> 00:02:34,590 cipher sifft? 40 00:02:34,590 --> 00:02:37,870 Ceisiwch gymharu ASCII gwerthoedd y newid. 41 00:02:37,870 --> 00:02:41,530 Efallai y gallwch ddod o hyd i berthynas rhwng y llythrennau a'u 42 00:02:41,530 --> 00:02:44,550 mynegai yn nhrefn yr wyddor gan ddefnyddio mathemateg ASCII. 43 00:02:44,550 --> 00:02:48,850 Allwch chi ychwanegu neu dynnu un cymeriad oddi wrth ei gilydd i gael 44 00:02:48,850 --> 00:02:51,630 i chi y canlyniad a ddymunir? 45 00:02:51,630 --> 00:02:55,480 >> Cofiwch fod y sifftiau ar gyfer priflythyren a llythrennau bach yr un fath. 46 00:02:55,480 --> 00:02:59,510 Felly, efallai y bydd angen i chi nodi dau fformiwlâu tebyg i gynrychioli'r 47 00:02:59,510 --> 00:03:03,570 sifft, un ar gyfer priflythyren cymeriad keyword, ac un 48 00:03:03,570 --> 00:03:06,510 ar gyfer un llythrennau bach. 49 00:03:06,510 --> 00:03:10,630 >> Nesaf, cofiwch fod y datblygiadau keyword dim ond os yw'r cymeriad yn 50 00:03:10,630 --> 00:03:13,520 testun plaen yn llythyr a bod achos y blaen 51 00:03:13,520 --> 00:03:16,020 Rhaid testun yn cael eu cadw. 52 00:03:16,020 --> 00:03:20,280 Felly, os edrychwn ar y fformiwla ar gyfer Newid Vigenere, mae dau fynegai 53 00:03:20,280 --> 00:03:22,880 newidynnau, i a j. 54 00:03:22,880 --> 00:03:26,795 Mae un yn cadw golwg ar y sefyllfa yn y blaen testun, a'r llall yn y sefyllfa 55 00:03:26,795 --> 00:03:27,910 yn yr allweddair. 56 00:03:27,910 --> 00:03:32,960 Ond efallai y bydd eich testun plaen yn llawer hirach nag y mae eich allweddair, ac os felly eich 57 00:03:32,960 --> 00:03:38,290 Mae angen mynegai allweddair i lapio o gwmpas yn ôl i ddechrau'r gair allweddol. 58 00:03:38,290 --> 00:03:39,870 >> Sut ydych chi'n gwneud hyn? 59 00:03:39,870 --> 00:03:43,740 Gadewch i ni edrych yn ôl ar y modwlo gweithredwr. 60 00:03:43,740 --> 00:03:47,280 Modwlo yn cael ei ddiffinio yn y gweddill o rannu dau rif. 61 00:03:47,280 --> 00:03:50,680 Ond beth yn union ymarferol defnyddio modwlo? 62 00:03:50,680 --> 00:03:54,340 >> Wel, dweud eich bod wedi grŵp mawr o bobl, ac mae angen eu rhannu yn 63 00:03:54,340 --> 00:03:55,100 dri grŵp. 64 00:03:55,100 --> 00:03:59,500 Un ffordd o rannu pobl yn grwpiau yw cael eu cyfrif i ffwrdd. 65 00:03:59,500 --> 00:04:03,520 Rydych yn rhif y grŵp grwpiau rhif 1, 2, a 3. 66 00:04:03,520 --> 00:04:08,510 Bydd y person cyntaf yn dweud 1, y 2 nesaf, y 3 nesaf. 67 00:04:08,510 --> 00:04:12,860 Y person ar ôl a fydd yn dweud 1, gan nad oes grŵp 4, ac mae'r 68 00:04:12,860 --> 00:04:15,880 cyfrif yn dechrau drosodd oddi yno. 69 00:04:15,880 --> 00:04:18,209 >> Gallwch ddefnyddio modwlo i gwneud yr un peth. 70 00:04:18,209 --> 00:04:22,680 Y tro hwn, bydd y grwpiau yn grŵp 0, 1, a 2. 71 00:04:22,680 --> 00:04:26,960 Y person cyntaf, rhif 1 modwlo 3, yw 1. 72 00:04:26,960 --> 00:04:29,830 Person 2 modwlo 3 yw 2. 73 00:04:29,830 --> 00:04:32,460 Person 3 modwlo 3 yw 0. 74 00:04:32,460 --> 00:04:38,470 Person 4 modwlo 3 yn rhoi 1, ac yn y blaen gall y grwpiau lapio o gwmpas. 75 00:04:38,470 --> 00:04:44,700 >> Felly, os ydych yn cymryd mynegai a modwlo y mynegai gan uchafswm maint, y 76 00:04:44,700 --> 00:04:49,820 Ni fydd canlyniad yn fwy na neu'n gyfartal i faint, sy'n golygu eich bod yn 77 00:04:49,820 --> 00:04:52,330 Gall gynyddu mynegai fel gymaint ag yr hoffech. 78 00:04:52,330 --> 00:04:57,400 Ac ar yr amod eich modwlo y mynegai gan ryw nifer, ni fyddwch yn cael nifer 79 00:04:57,400 --> 00:04:58,510 yn fwy na hynny. 80 00:04:58,510 --> 00:05:04,500 Felly mae gennym 10 o bobl yn hytrach na 5, ac byddent i gyd yn cael ei neilltuo i grwpiau 81 00:05:04,500 --> 00:05:07,480 rhif 0, 1, neu 2. 82 00:05:07,480 --> 00:05:11,680 >> Ceisiwch i gymhwyso hyn i lapio dros y keyword, ac eithrio lle eu trefnu 83 00:05:11,680 --> 00:05:16,050 pobl i niferoedd grwpiau yr ydych am i'r mynegai y gair allweddol fel y gallwch 84 00:05:16,050 --> 00:05:19,080 cael y cymeriad cywir ar gyfer y symud heb fod yn fwy na'r 85 00:05:19,080 --> 00:05:21,836 hyd y llinyn. 86 00:05:21,836 --> 00:05:24,790 Gyda hynny, mae gennych eich Vigenere cipher. 87 00:05:24,790 --> 00:05:27,790 Fy enw i yw Zamyla, ac mae hyn yn CS50. 88 00:05:27,790 --> 00:05:32,566