[เล่นเพลง] 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