>> [Музыка Воспроизведение]
>> 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.