[عزف الموسيقى] ZAMYLA تشان: دعونا تنفيذ Vigenere، وهو ما يزيد قليلا الشفرات أمانا من قيصر. ومشفر نص عادي باستخدام سلسلة بدلا من عدد صحيح. كل حرف أبجدي في يتم إزاحة نص عادي من قبل حرف في الكلمة. في هذا المثال، ohai الكلمة، O يتوافق مع التحول من 14؛ H ل التحول من 7؛ A، تحول 0، وأنا تحولا من 8. إذا كنت قد نفذت بنجاح الخاصة بك قيصر والشفرات، وأنها سوف تكون لطيفة الإطار الذي قمت يمكن تنفيذ Vigenere. كما ترون، تشغيل Vigenere الشفرات مع حرف واحد باعتباره الكلمة هو نفس الشيء كما قيصر والشفرات. تطبيق نفس الخطوات لVigenere كما فعلوا في قيصر. الكلمة هو سطر الأوامر الثاني حجة، لذلك يمكنك الوصول إليه مع argv1. ثم تحتاج إلى التحقق من أن المفتاح كلمة هو في الواقع كل الأبجدي. هنا حيث هو ألفا يمكن أن تأتي في متناول اليدين. إذا كان لديك الكلمة صحيحة، يمكنك الحصول على قوة من المستخدم، ومن ثم كنت على استعداد لشفر. الصيغة الشفرات Vigenere مشابه لقيصر الصيغة، باستثناء الآن ك ك ي يصبح منخفض، مما يدل الرسالة-ي عشر من الكلمة. دعونا الخطوة من خلال هذه العملية. يقول أردت إرسال رسالة إلى الخاص تحطم، وأنا مثلك، ولكنك لا نريد أن يعرف الجميع. لذلك يمكنك استخدام الشفرات مع Vigenere الباندا الكلمة، لأنه، أيضا، أنت أيضا مثل الباندا. الحرف الأول، وأنا، كما سيتم إسناد بواسطة ع، وإعطاء س، 15 رسائل بعد الأول، لأن 15 ص هو 16 حرف من الأبجدية. الرسالة التالية في نص عادي هو مسافة، بحيث لن تحول. ومؤشر من الكلمة لن تتغير. ثم كان الحرف التالي في نص عادي هو لتر، تحولت من قبل، والتي لا تحول الرسالة نص عادي على الإطلاق، وذلك لأن لهو حرف 0 الأبجدية. تستمر عملية، والنهوض حرف الكلمة في كل مرة هناك حرف في نص عادي. مرة واحدة على الحرف الأخير في الكلمة الرئيسية وصلت، والكلمة يلتف حول و التحول إلى سهل القادمة الرسالة النصية التي كتبها p. X lvne نوح. كيف الرومانسية. بحيث تعطى حرف، كيف يمكنك تحويل ذلك في المقابلة التحول الشفرات؟ محاولة مقارنة ASCII القيم إلى التحول. ربما يمكنك أن تجد علاقة بين الحروف والخاصة الترتيب الأبجدي الفهرس باستخدام ASCII الرياضيات. يمكنك إضافة أو طرح حرف واحد من آخر للحصول على لك النتيجة المرجوة؟ نتذكر أن التحولات الكبيرة ل وبأحرف صغيرة هي نفسها. لذلك ربما ستحتاج إلى التعرف على اثنين صيغ مماثلة لتمثيل التحول، واحدة كبيرة ل حرف الكلمة، واحد عن واحدة صغيرة. المقبل، تذكر أن التقدم الكلمة فقط إذا كان الحرف في نص عادي هو أن الرسالة و حالة عادي يجب الحفاظ على النص. لذلك إذا نظرنا إلى صيغة ل Vigenere التحول، وهناك مؤشر اثنين المتغيرات، i و 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.