1 00:00:00,000 --> 00:00:10,101 >> [Музыка Прайграванне] 2 00:00:10,101 --> 00:00:12,700 >> ZAMYLA Чан: давайце рэалізуем Vigenere, крыху больш за 3 00:00:12,700 --> 00:00:14,710 забяспечыць шыфра, чым Цэзар. 4 00:00:14,710 --> 00:00:19,670 Просты тэкст шыфруецца выкарыстаннем радок, а цэлае. 5 00:00:19,670 --> 00:00:22,970 Кожная літара ў просты тэкст зрушваецца 6 00:00:22,970 --> 00:00:24,450 літары ў словы. 7 00:00:24,450 --> 00:00:30,860 >> У гэтым прыкладзе ключавое слова Ohai, Аб адпавядае зруху 14, H, каб 8 00:00:30,860 --> 00:00:36,910 зрух 7;, зрух 0 і I зруху 8. 9 00:00:36,910 --> 00:00:40,710 Калі вы паспяхова рэалізавалі Шыфр Цэзара, гэта будзе добры 10 00:00:40,710 --> 00:00:43,510 рамкі, з якіх вы можа рэалізаваць Vigenere. 11 00:00:43,510 --> 00:00:47,140 Як вы можаце бачыць, працуе Vigenere шыфр з аднаго знака, як 12 00:00:47,140 --> 00:00:51,830 Ключавое слова тое ж самае як шыфр Цэзара. 13 00:00:51,830 --> 00:00:55,170 >> Аналагічныя дзеянні прымяняюцца да Vigenere як гэта было ў Цэзара. 14 00:00:55,170 --> 00:01:01,240 Ключавым словам з'яўляецца другой каманднага радка Аргумент, так што вы да яго доступ з argv1. 15 00:01:01,240 --> 00:01:05,400 Затым вам трэба праверыць, што ключ Слова, сапраўды, усё ў алфавітным парадку. 16 00:01:05,400 --> 00:01:09,040 Вось дзе альфа можа спатрэбіцца. 17 00:01:09,040 --> 00:01:13,550 Калі ў вас ёсць сапраўдны ключавое слова, вы атрымліваеце сілу ад карыстальніка, а затым 18 00:01:13,550 --> 00:01:15,820 Вы гатовыя для шыфравання. 19 00:01:15,820 --> 00:01:20,840 >> Формула Vigenere шыфр падобны Цэзару формула, толькі цяпер да 20 00:01:20,840 --> 00:01:27,650 становіцца індэксам K J, паказваючы J-й літары слова. 21 00:01:27,650 --> 00:01:29,640 Давайце зробім крок праз гэты працэс. 22 00:01:29,640 --> 00:01:34,060 Скажы, што ты хацеў паслаць паведамленне на ваш аварыі, ты мне падабаешся, але вы не ведаеце 23 00:01:34,060 --> 00:01:35,190 хачу, каб усе ведалі. 24 00:01:35,190 --> 00:01:39,800 Таму можна выкарыстоўваць шыфр з Vigenere Ключавое слова панда, таму што, ну, вы таксама 25 00:01:39,800 --> 00:01:41,160 падабаюцца панды. 26 00:01:41,160 --> 00:01:47,140 >> Першы ліст, я, будуць ссунутыя на р, даючы х, 15 літар пасля таго як я, 27 00:01:47,140 --> 00:01:52,850 таму што 15 р 16 літара алфавіту. 28 00:01:52,850 --> 00:01:56,750 Наступная літара адкрытага тэксту прасторы, так што не будуць ссунутыя. 29 00:01:56,750 --> 00:02:00,420 А індэкс ключавое слова не зменіцца. 30 00:02:00,420 --> 00:02:05,440 >> Тады наступная літара адкрытага тэксту л, ссунутай на, які не ссоўваецца 31 00:02:05,440 --> 00:02:10,930 раўніны тэкст ліста наогул, таму што з'яўляецца 0-я літара алфавіту. 32 00:02:10,930 --> 00:02:14,980 Працэс працягваецца, прасоўваючыся Ключавое слова сімвала за раз ёсць 33 00:02:14,980 --> 00:02:16,840 Ліст у просты тэкст. 34 00:02:16,840 --> 00:02:21,850 Як толькі апошняя літара ў ключавое слова дасягнута, то ключавое слова абгортваецца вакол і 35 00:02:21,850 --> 00:02:25,890 пераходзіць на наступны просты Тэкст ліста на р. 36 00:02:25,890 --> 00:02:27,170 X lvne Але. 37 00:02:27,170 --> 00:02:29,180 Як рамантычна. 38 00:02:29,180 --> 00:02:33,120 >> Таму, улічваючы характар, як вы канвертаваць што ў адпаведны 39 00:02:33,120 --> 00:02:34,590 зашыфраваць змену? 40 00:02:34,590 --> 00:02:37,870 Паспрабуйце параўнання ASCII значэнняў зруху. 41 00:02:37,870 --> 00:02:41,530 Можа быць, вы можаце знайсці адносіны паміж літарамі і іх 42 00:02:41,530 --> 00:02:44,550 алфавітны паказальнік Выкарыстанне ASCII матэматыку. 43 00:02:44,550 --> 00:02:48,850 Вы можаце дадаць ці адняць адзін знак ад іншага, каб атрымаць 44 00:02:48,850 --> 00:02:51,630 вам жаданы вынік? 45 00:02:51,630 --> 00:02:55,480 >> Памятаеце, што для верхняга рэгістра зруху і малыя літары аднолькавыя. 46 00:02:55,480 --> 00:02:59,510 Таму, магчыма, вам неабходна вылучыць два аналагічныя формулы для прадстаўлення 47 00:02:59,510 --> 00:03:03,570 зрух, па адным для верхняга рэгістра ключавое слова сімвала, і адзін 48 00:03:03,570 --> 00:03:06,510 для маленькай адзін. 49 00:03:06,510 --> 00:03:10,630 >> Далей, памятаеце, што ключавое слова дасягненняў толькі калі знак у 50 00:03:10,630 --> 00:03:13,520 простага тэксту лісты і што выпадку раўніне 51 00:03:13,520 --> 00:03:16,020 Тэкст павінен быць захаваны. 52 00:03:16,020 --> 00:03:20,280 Так што, калі мы паглядзім на формулу для Vigenere зрух, ёсць два індэкса 53 00:03:20,280 --> 00:03:22,880 зменных, я і J. 54 00:03:22,880 --> 00:03:26,795 Адзін сочыць за становішчам у просты тэксту, а іншай пазіцыі 55 00:03:26,795 --> 00:03:27,910 у ключавым слове. 56 00:03:27,910 --> 00:03:32,960 Але ваш звычайны тэкст можа быць значна больш чым вашыя ключавыя словы, і ў гэтым выпадку вашы 57 00:03:32,960 --> 00:03:38,290 Ключавое слова індэкс павінен абгарнуць вакол назад да пачатку слова. 58 00:03:38,290 --> 00:03:39,870 >> Як вы гэта робіце? 59 00:03:39,870 --> 00:03:43,740 Давайце азірнемся на модулю аператара. 60 00:03:43,740 --> 00:03:47,280 Модулю вызначаецца гэта рэшту дзялення двух лікаў. 61 00:03:47,280 --> 00:03:50,680 Але тое, што рэальных практычных Выкарыстанне модуля? 62 00:03:50,680 --> 00:03:54,340 >> Ну, у вас ёсць вялікая група людзі, і вы павінны падзяліцца на 63 00:03:54,340 --> 00:03:55,100 тры групы. 64 00:03:55,100 --> 00:03:59,500 Адзін са спосабаў падзяліць людзей на групы з'яўляецца, каб мець іх адлічваць. 65 00:03:59,500 --> 00:04:03,520 Вы колькасці груп групы № 1, 2 і 3. 66 00:04:03,520 --> 00:04:08,510 Першы чалавек скажа, 1, Наступныя 2, наступныя 3. 67 00:04:08,510 --> 00:04:12,860 Чалавек пасля гэтага скажа 1, таму што няма групы 4, а таксама 68 00:04:12,860 --> 00:04:15,880 адлік пачынаецца на сябе адтуль. 69 00:04:15,880 --> 00:04:18,209 >> Вы можаце выкарыстоўваць модуль для зрабіць тое ж самае. 70 00:04:18,209 --> 00:04:22,680 На гэты раз, групы будзе быць групы 0, 1 і 2. 71 00:04:22,680 --> 00:04:26,960 Першы чалавек, колькасць 1 па модулю 3, роўная 1. 72 00:04:26,960 --> 00:04:29,830 Чалавек 2 па модулю 3: 2. 73 00:04:29,830 --> 00:04:32,460 Твар 3 па модулю 3: 0. 74 00:04:32,460 --> 00:04:38,470 Персоны 4 модулю 3 дае 1 і г.д. групы могуць абгарнуць вакол. 75 00:04:38,470 --> 00:04:44,700 >> Так што калі вы бераце індэкс і па модулю што індэкс па максімальным памеры, 76 00:04:44,700 --> 00:04:49,820 вынік ніколі не будзе больш або роўную памеру, гэта значыць вы 77 00:04:49,820 --> 00:04:52,330 можа павялічыць індэкс ў якасці колькі вы хацелі б. 78 00:04:52,330 --> 00:04:57,400 І да тых часоў, як вы модулю індэкса некаторы лік, вы не атрымаеце лік 79 00:04:57,400 --> 00:04:58,510 больш, чым гэта. 80 00:04:58,510 --> 00:05:04,500 Таму ў нас ёсць 10 чалавек, а не 5, а яны збіраліся ўсе аднесены да груп 81 00:05:04,500 --> 00:05:07,480 лік 0, 1 або 2. 82 00:05:07,480 --> 00:05:11,680 >> Паспрабуйце ўжыць гэта да завяршэння над Ключавое слова, толькі замест сартавання 83 00:05:11,680 --> 00:05:16,050 Група людзей у патрэбных нумароў індэкс ключавое слова, каб можна было 84 00:05:16,050 --> 00:05:19,080 атрымаць правільны сімвал для пераходзіць без перавышэння 85 00:05:19,080 --> 00:05:21,836 Даўжыня радка. 86 00:05:21,836 --> 00:05:24,790 Пры тым, што ў вас ёсць Vigenere шыфра. 87 00:05:24,790 --> 00:05:27,790 Мяне клічуць Zamyla, і гэта CS50. 88 00:05:27,790 --> 00:05:32,566