>> [เล่นเพลง]
>> ZAMYLA CHAN: Let 's ใช้ Vigenere, กว่าเล็กน้อย
ตัวเลขที่มีความปลอดภัยกว่าซีซาร์
ข้อความธรรมดาถูกเข้ารหัสโดยใช้ สตริงแทนจำนวนเต็ม
แต่ละตัวอักษรที่เรียงตามตัวอักษรใน ข้อความธรรมดาจะเลื่อนตาม
ตัวอักษรในคำหลัก
>> ในตัวอย่างนี้คำหลัก ohai, O สอดคล้องกับการเปลี่ยนแปลงจาก 14; เอช
เปลี่ยนจาก 7; การเปลี่ยนแปลงของ 0; และฉันเปลี่ยนจาก 8
หากคุณได้ดำเนินการประสบความสำเร็จของคุณ ซีซาร์ตัวเลขมันจะดี
กรอบที่คุณ สามารถใช้ Vigenere
ที่คุณสามารถดูวิ่ง Vigenere ตัวเลขกับตัวอักษรตัวเดียวเช่น
คำหลักเป็นสิ่งเดียวกัน เป็นซีซาร์ตัวเลข
>> ขั้นตอนเดียวกันนำไปใช้กับ Vigenere ขณะที่พวกเขาได้ในซีซาร์
คำหลักที่เป็นบรรทัดคำสั่งที่สอง อาร์กิวเมนต์เพื่อให้คุณเข้าถึงได้ด้วย argv1
แล้วคุณจะต้องตรวจสอบว่าที่สำคัญ คำย่อมเป็นตัวอักษรทั้งหมด
ที่นี่เป็นที่ที่อัลฟา สามารถมาในสะดวก
หากคุณมีคำหลักที่ถูกต้องคุณจะได้รับ ความแรงจากผู้ใช้และจากนั้น
คุณพร้อมที่จะเปลี่ยนเป็นรหัส
>> สูตรตัวเลข Vigenere คล้าย ซีซาร์สูตรยกเว้นในขณะนี้ K
K ห้อยเจชี้จะกลายเป็น ตัวอักษรที่ j ของคำหลัก
ให้ก้าวผ่านขั้นตอนนี้
สมมติว่าคุณต้องการที่จะส่งข้อความไปยังคุณ ความผิดพลาดของผมชอบคุณ แต่คุณทำไม่ได้
ต้องการให้ทุกคนรู้ว่า
ดังนั้นคุณจึงใช้ตัวเลข Vigenere กับ หมีแพนด้าคำหลักเพราะดีคุณยัง
เหมือนหมีแพนด้า
>> ตัวอักษรตัวแรกที่ผมจะขยับตัวไปมา โดย p ให้ x 15 ตัวอักษรหลังจากที่ฉัน,
เพราะ 15 p คือ 16 ตัวอักษร
อักษรตัวถัดไปในแบบข้อความล้วนเป็น พื้นที่เพื่อที่จะไม่ได้ขยับตัวไปมา
และดัชนีของคำหลัก จะไม่เปลี่ยน
>> แล้วอักษรตัวถัดไปในแบบข้อความล้วนเป็น l ขยับตัวโดยที่ไม่ได้เปลี่ยน
ตัวอักษรข้อความธรรมดาที่ทุกคนเพราะ เป็นตัวอักษรตัวที่ 0 ของตัวอักษร
กระบวนการยังคงล้ำหน้า ตัวละครหลักทุกครั้งที่มี
ตัวอักษรในข้อความธรรมดา
เมื่อจดหมายฉบับสุดท้ายในคำหลักคือ ถึงคำหลักพันรอบและ
กะจะธรรมดาไป ตัวอักษรข้อความโดย p
Noh X lvne
วิธีโรแมนติก
>> กำหนดให้ตัวละครอย่างไรคุณแปลง ที่เป็นที่สอดคล้องกัน
ตัวเลขการเปลี่ยนแปลง?
ลองเปรียบเทียบ ASCII ค่าการเปลี่ยนแปลง
บางทีคุณอาจจะพบความสัมพันธ์ ระหว่างตัวอักษรของพวกเขาและ
ดัชนีตามตัวอักษรโดยใช้คณิตศาสตร์ ASCII
คุณสามารถเพิ่มหรือลบตัวละครตัวหนึ่ง จากที่อื่นจะได้รับการ
คุณผลลัพธ์ที่ต้องการ?
>> โปรดจำไว้ว่าการเปลี่ยนแปลงสำหรับตัวพิมพ์ใหญ่ และตัวอักษรตัวพิมพ์เล็กเหมือนกัน
ดังนั้นบางทีคุณจะต้องระบุสอง สูตรที่คล้ายกันที่จะเป็นตัวแทน
กะหนึ่งสำหรับตัวพิมพ์ใหญ่ ตัวละครหลักและหนึ่ง
สำหรับพิมพ์เล็กหนึ่ง
>> ถัดไปโปรดจำไว้ว่าคำหลักที่ก้าวหน้า เฉพาะในกรณีที่ตัวละครใน
ข้อความธรรมดาเป็นตัวอักษรและที่ กรณีของธรรมดา
ข้อความที่จะต้องได้รับการเก็บรักษาไว้
ดังนั้นถ้าเรามองไปที่สูตร กะ Vigenere มีสองดัชนี
ตัวแปร i และ j
หนึ่งติดตามตำแหน่งในที่ราบ ข้อความและอื่น ๆ ตำแหน่ง
ในคำหลัก
แต่ข้อความธรรมดาของคุณอาจจะอีกนานเท่าใด กว่าคำหลักของคุณซึ่งในกรณีของคุณ
คำหลักดัชนีความต้องการที่จะห่อรอบกลับ ที่จุดเริ่มต้นของคำหลัก
>> คุณมีวิธีการทำเช่นนี้?
ลองมองกลับไปที่ ประกอบแบบโมดูโล
Modulo ถูกกำหนดให้เป็นส่วนที่เหลือ จากการหารตัวเลขสอง
แต่สิ่งที่เกิดขึ้นจริงในทางปฏิบัติสิ่ง การใช้แบบโมดูโล?
>> ดีว่าคุณมีกลุ่มใหญ่ของ คนและคุณจะต้องแบ่งออกเป็น
กลุ่มที่สาม
วิธีหนึ่งที่จะแบ่งคนออกเป็นกลุ่ม คือการมีพวกเขานับออก
คุณหมายเลขกลุ่มนี้กลุ่มต่างๆ หมายเลข 1, 2, และ 3
คนแรกที่จะบอกว่า 1 2 ถัดไปถัดไป 3
หลังจากนั้นคนที่จะบอกว่า 1, เพราะไม่มีกลุ่ม 4, และ
นับเริ่มต้นจากการมี
>> คุณสามารถใช้แบบโมดูโลไป ทำสิ่งเดียวกัน
เวลานี้กลุ่มจะ เป็นกลุ่ม 0, 1, 2 และ
คนแรกที่หมายเลข 1 แบบโมดูโล 3 เป็น 1
คน 2 แบบโมดูโล 3 คือ 2
บุคคลที่ 3 แบบโมดูโล 3 คือ 0
คน 4 แบบโมดูโล 3 ให้ 1 และอื่น ๆ กลุ่มสามารถห่อรอบ
>> ดังนั้นหากคุณใช้ดัชนีและแบบโมดูโล ดัชนีโดยขนาดสูงสุดที่
ผลจะไม่มากกว่าหรือ เท่ากับขนาด, หมายความว่าคุณ
สามารถเพิ่มดัชนีเป็น มากที่สุดเท่าที่คุณต้องการ
และตราบใดที่คุณ Modulo ดัชนีโดย จำนวนบางอย่างคุณจะไม่ได้รับเป็นจำนวนมาก
ขนาดใหญ่กว่า
ดังนั้นเราจึงมี 10 คนจาก 5 แทนและ พวกเขาจะทั้งหมดได้รับการกำหนดให้กับกลุ่ม
เลข 0, 1, 2 หรือ
>> พยายามที่จะใช้นี้เพื่อตัดผ่าน คำหลักยกเว้นแทนของการเรียงลำดับ
คนเป็นตัวเลขกลุ่มที่คุณต้องการ ดัชนีของคำหลักเพื่อให้คุณสามารถ
ได้รับตัวอักษรที่เหมาะสมสำหรับ เปลี่ยนไม่เกิน
ความยาวของสตริง
กับที่คุณมีของคุณ ตัวเลข Vigenere
ชื่อของฉันคือ Zamyla และนี่คือ CS50