[Музыка Прайграванне] ZAMYLA Чан: давайце рэалізуем Vigenere, крыху больш за забяспечыць шыфра, чым Цэзар. Просты тэкст шыфруецца выкарыстаннем радок, а цэлае. Кожная літара ў просты тэкст зрушваецца літары ў словы. У гэтым прыкладзе ключавое слова Ohai, Аб адпавядае зруху 14, H, каб зрух 7;, зрух 0 і I зруху 8. Калі вы паспяхова рэалізавалі Шыфр Цэзара, гэта будзе добры рамкі, з якіх вы можа рэалізаваць Vigenere. Як вы можаце бачыць, працуе Vigenere шыфр з аднаго знака, як Ключавое слова тое ж самае як шыфр Цэзара. Аналагічныя дзеянні прымяняюцца да Vigenere як гэта было ў Цэзара. Ключавым словам з'яўляецца другой каманднага радка Аргумент, так што вы да яго доступ з argv1. Затым вам трэба праверыць, што ключ Слова, сапраўды, усё ў алфавітным парадку. Вось дзе альфа можа спатрэбіцца. Калі ў вас ёсць сапраўдны ключавое слова, вы атрымліваеце сілу ад карыстальніка, а затым Вы гатовыя для шыфравання. Формула Vigenere шыфр падобны Цэзару формула, толькі цяпер да становіцца індэксам K J, паказваючы J-й літары слова. Давайце зробім крок праз гэты працэс. Скажы, што ты хацеў паслаць паведамленне на ваш аварыі, ты мне падабаешся, але вы не ведаеце хачу, каб усе ведалі. Таму можна выкарыстоўваць шыфр з Vigenere Ключавое слова панда, таму што, ну, вы таксама падабаюцца панды. Першы ліст, я, будуць ссунутыя на р, даючы х, 15 літар пасля таго як я, таму што 15 р 16 літара алфавіту. Наступная літара адкрытага тэксту прасторы, так што не будуць ссунутыя. А індэкс ключавое слова не зменіцца. Тады наступная літара адкрытага тэксту л, ссунутай на, які не ссоўваецца раўніны тэкст ліста наогул, таму што з'яўляецца 0-я літара алфавіту. Працэс працягваецца, прасоўваючыся Ключавое слова сімвала за раз ёсць Ліст у просты тэкст. Як толькі апошняя літара ў ключавое слова дасягнута, то ключавое слова абгортваецца вакол і пераходзіць на наступны просты Тэкст ліста на р. X lvne Але. Як рамантычна. Таму, улічваючы характар, як вы канвертаваць што ў адпаведны зашыфраваць змену? Паспрабуйце параўнання ASCII значэнняў зруху. Можа быць, вы можаце знайсці адносіны паміж літарамі і іх алфавітны паказальнік Выкарыстанне ASCII матэматыку. Вы можаце дадаць ці адняць адзін знак ад іншага, каб атрымаць вам жаданы вынік? Памятаеце, што для верхняга рэгістра зруху і малыя літары аднолькавыя. Таму, магчыма, вам неабходна вылучыць два аналагічныя формулы для прадстаўлення зрух, па адным для верхняга рэгістра ключавое слова сімвала, і адзін для маленькай адзін. Далей, памятаеце, што ключавое слова дасягненняў толькі калі знак у простага тэксту лісты і што выпадку раўніне Тэкст павінен быць захаваны. Так што, калі мы паглядзім на формулу для Vigenere зрух, ёсць два індэкса зменных, я і J. Адзін сочыць за становішчам у просты тэксту, а іншай пазіцыі у ключавым слове. Але ваш звычайны тэкст можа быць значна больш чым вашыя ключавыя словы, і ў гэтым выпадку вашы Ключавое слова індэкс павінен абгарнуць вакол назад да пачатку слова. Як вы гэта робіце? Давайце азірнемся на модулю аператара. Модулю вызначаецца гэта рэшту дзялення двух лікаў. Але тое, што рэальных практычных Выкарыстанне модуля? Ну, у вас ёсць вялікая група людзі, і вы павінны падзяліцца на тры групы. Адзін са спосабаў падзяліць людзей на групы з'яўляецца, каб мець іх адлічваць. Вы колькасці груп групы № 1, 2 і 3. Першы чалавек скажа, 1, Наступныя 2, наступныя 3. Чалавек пасля гэтага скажа 1, таму што няма групы 4, а таксама адлік пачынаецца на сябе адтуль. Вы можаце выкарыстоўваць модуль для зрабіць тое ж самае. На гэты раз, групы будзе быць групы 0, 1 і 2. Першы чалавек, колькасць 1 па модулю 3, роўная 1. Чалавек 2 па модулю 3: 2. Твар 3 па модулю 3: 0. Персоны 4 модулю 3 дае 1 і г.д. групы могуць абгарнуць вакол. Так што калі вы бераце індэкс і па модулю што індэкс па максімальным памеры, вынік ніколі не будзе больш або роўную памеру, гэта значыць вы можа павялічыць індэкс ў якасці колькі вы хацелі б. І да тых часоў, як вы модулю індэкса некаторы лік, вы не атрымаеце лік больш, чым гэта. Таму ў нас ёсць 10 чалавек, а не 5, а яны збіраліся ўсе аднесены да груп лік 0, 1 або 2. Паспрабуйце ўжыць гэта да завяршэння над Ключавое слова, толькі замест сартавання Група людзей у патрэбных нумароў індэкс ключавое слова, каб можна было атрымаць правільны сімвал для пераходзіць без перавышэння Даўжыня радка. Пры тым, што ў вас ёсць Vigenere шыфра. Мяне клічуць Zamyla, і гэта CS50.