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 الكلمة، O يتوافق مع التحول من 14؛ H ل 8 00:00:30,860 --> 00:00:36,910 التحول من 7؛ A، تحول 0، وأنا تحولا من 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 ك ي يصبح منخفض، مما يدل الرسالة-ي عشر من الكلمة. 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 التحول إلى سهل القادمة الرسالة النصية التي كتبها p. 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 المتغيرات، i و 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