[Musiqi ifa] ZAMYLA Chan: edək həyata Vigenere, bir az daha Sezar çox parol təmin edir. Bu düz mətn istifadə enciphered edir yerinə tam bir simli. Hər əlifba xarakter düz mətn tərəfindən keçdikdə söz məktub. Bu nümunədə, söz ohai, O 14 bir növbədə uyğun gəlir H üçün 7 növbədə, A shift 0; və mən 8-shift. Siz uğurla icra etdik varsa Caesar cipher, bu gözəl olacaq çərçivəsində olan siz Vigenere həyata keçirə bilərlər. Gördüyünüz kimi, bir Vigenere çalışan kimi bir xarakteri ilə parol söz eyni şeydir bir Sezar parol kimi. Eyni addımlar Vigenere müraciət onlar Caesar olduğu kimi. Söz ikinci komanda xətt dəlil, belə ki, argv1 ilə daxil. Sonra yoxlamaq lazımdır ki, əsas sözü həqiqətən əlifba edir. Burada alpha Ü edir lazımlı gələ bilər. Cari bir söz varsa, almaq sonra istifadəçi güc və Siz encipher hazırsınız. Bu Vigenere cipher formula oxşar İndi k istisna olmaqla Caesar formula üçün ifadə k subscript j olur söz və j-ci məktub. Bu prosesi addım edək. Siz bir mesaj göndərmək istəyib crash, mən sizi istəyirəm, lakin siz bunu hər kəs bilmək istəyirəm. Beləliklə, siz bir Vigenere parol istifadə söz panda, çünki, yaxşı, siz də PANDAS istəyirəm. İlk məktub, mən keçdikdə olunacaq Mən sonra, 15 məktubları x verilməsi P, 15 p 16, çünki əlifbası məktubu. Düz mətn növbəti məktub Boşluq keçdikdə, belə ki. Və söz göstəricisi dəyişməyəcək. Sonra düz metin növbəti məktub keçmək olmayan tərəfindən keçdikdə l, bütün düz metin olaraq məktub, çünki bir əlifbası 0th məktubu. Bu proses inkişaf davam edir söz xarakter var hər zaman düz mətn məktubu. Söz son məktub sonra çatdı, söz ətrafında wraps və növbəti düz keçid p mətn məktubu. X lvne noh. Necə romantik. Belə ki, bir xarakter verilmiş, necə çevirmək yoxdur ki, müvafiq daxil shift parol? Ki, ASCII müqayisə edin shift dəyərlər. Bəlkə bir əlaqə tapa bilərsiniz məktubları və onların arasında ASCII riyaziyyat istifadə edərək, əlifba index. Bir xarakter əlavə və ya çıxmaq edə başqa almaq istədiyiniz nəticə? Xatırla ki, böyük üçün növbəli Böyük və kiçik hərfləri eynidir. Belə ki, bəlkə iki müəyyən etmək üçün lazımdır oxşar düsturlar da təmsil etmək növbədə, bir böyük bir söz xarakteri, və bir bir kiçik bir. Sonra, unutmayın ki, söz avanslar yalnız xarakter əgər düz mətn bir məktub və ki, düz işi mətn saxlanılır olmalıdır. Biz üçün formula baxmaq Belə ki, əgər Vigenere shift, iki index var dəyişənlər, i və j. Bir düzündə mövqe tutar mətn, və digər mövqe söz edir. Lakin düz mətn çox uzun ola bilər Açar söz çox, bu halda, söz index geri ətrafında kesmek lazımdır söz əvvəlinə. Siz necə etməliyəm? Ki, geri nəzər edək modulo operator. Modulo müəyyən edilir qalan deyil iki ədəd bölünməsi. Amma nə faktiki praktik var modulo istifadə? Bəli, böyük bir qrup var demək insanlar, və bölünür lazımdır üç qrupa. Qruplar insanları bölmək üçün bir yolu onları saymaq var. Siz sayı qrupları qrupu sayı 1, 2, 3. Ilk şəxs, 1 deyəcəklər növbəti 2, növbəti 3. 1 deyəcəklər bundan sonra şəxs, bir qrup 4, və yoxdur, çünki count oradan artıq başlayır. Siz modulo istifadə edə bilərsiniz eyni şey. Bu dəfə qrup qrupu 0, 1 və 2 ola bilər. Ilk şəxs, sayı 1 modulo 3, 1-dir. Şəxs 2 modulo 3 2-dir. Şəxs 3 modulo 3 0 edir. Şəxs 4 modulo 3 belə 1 verir, qruplar ətrafında kesmek bilər. Bir index və modulo almaq Belə ki, əgər maksimum ölçüsü ki indeksi nəticə və ya daha çox heç vaxt məna, ölçüsü bərabər ki, kimi index artıra bilər istədiyiniz kimi çox. Və kimi uzun siz tərəfindən index modulo kimi bir sayı, bir sıra almaq deyil daha böyük. Beləliklə, biz 10 nəfər əvəzinə 5 var və Onlar bütün qruplar təyin olmaq sayı 0, 1 və ya 2. Üzərində wrapping bu müraciət edin söz, başqa əvəzinə çeşidlənməsi qrup nömrələri insanları siz istədiyiniz söz indeksi bilərsiniz, belə ki, üçün sağ karakter almaq ki, aşmadan keçmək simli uzunluğu. Ki, siz sizin Vigenere cipher. My name Zamyla, bu CS50 edir.