สภาพการเข้ารหัส Fano ไม่สม่ำเสมอ เรากำลังเตรียมตัวสำหรับการสอบ Unified State ในสาขาวิทยาการคอมพิวเตอร์ สภาพฟาโน่. เมื่อดำเนินการงานนี้ คุณต้องทราบเงื่อนไข Fano รหัส Huffman

ภารกิจที่ 5

เมื่อปฏิบัติภารกิจนี้ต้องรู้สภาวะฟาโนรหัสฮัฟฟ์แมน

สภาพตรงของฟาโน่หมายความว่าอย่างไร?

สภาพฟาโน่ ตั้งชื่อตามผู้สร้าง Robert Fano นักวิทยาศาสตร์ชาวอิตาเลียนอเมริกัน เงื่อนไขนี้จำเป็นในทฤษฎีการเข้ารหัสเมื่อสร้างโค้ดที่สิ้นสุดด้วยตัวเอง เมื่อพิจารณาจากคำศัพท์ที่แตกต่างกัน รหัสดังกล่าวจึงเรียกว่ารหัสนำหน้า

กำหนด เงื่อนไขนี้สามารถทำได้ดังนี้: "ไม่มีคำรหัสใดที่สามารถทำหน้าที่เป็นจุดเริ่มต้นของคำอื่นได้ รหัสคำ ».

จากมุมมองทางคณิตศาสตร์ สามารถกำหนดเงื่อนไขได้ดังนี้: “หากโค้ดมีคำว่า B ดังนั้นสำหรับบรรทัดที่ไม่ว่าง C คำว่า BC จะไม่มีอยู่ในโค้ด ».

ภาวะฟาโน่แบบย้อนกลับหมายถึงอะไร?

นอกจากนี้ยังมีกฎ Fano แบบผกผันซึ่งมีการกำหนดดังนี้: “ไม่มีคำรหัสใดที่สามารถทำหน้าที่เป็นจุดสิ้นสุดของคำรหัสอื่นได้ ».

จากมุมมองทางคณิตศาสตร์ เงื่อนไขผกผันสามารถกำหนดได้ดังนี้: “หากโค้ดมีคำว่า B ดังนั้นสำหรับสตริง C ที่ไม่ว่าง คำว่า CB จะไม่มีอยู่ในโค้ด ».

สภาพปัญหา: ให้ลำดับที่ประกอบด้วยตัวอักษร "A", "B", "C", "D" และ "E" ในการเข้ารหัสลำดับที่กำหนดไม่สม่ำเสมอ รหัสไบนารี่ซึ่งคุณสามารถทำการถอดรหัสได้อย่างชัดเจน

จดหมาย

เทียบเท่าไบนารี

010

011

101

111

คำถาม : เป็นไปได้ไหมที่สัญลักษณ์ตัวใดตัวหนึ่งจะย่อความยาวของคำรหัสเพื่อรักษาความเป็นไปได้ การถอดรหัสที่ชัดเจน- ในกรณีนี้ รหัสของสัญลักษณ์ที่เหลือควรจะไม่เปลี่ยนแปลง

หมายเลขตัวเลือก

คำตอบ

ข–01

เป็นไปไม่ได้

ค–01

ง–01

สารละลาย : เพื่อรักษาความเป็นไปได้ของการถอดรหัส ก็เพียงพอที่จะปฏิบัติตามโดยตรงหรือย้อนกลับเงื่อนไขของฟาโน่ - เรามาตรวจสอบตัวเลือกที่ 1, 3 และ 4 กันตามลำดับ หากไม่มีตัวเลือกใดที่เหมาะสม คำตอบที่ถูกต้องจะเป็นตัวเลือกที่ 2 (เป็นไปไม่ได้)

ตัวเลือก 1. รหัส: A - 00, B - 01, C - 011, D - 101 และ E - 111 โดยตรงสภาพฟาโน่ ไม่ได้ดำเนินการ: รหัสของอักขระ "B" เกิดขึ้นพร้อมกับจุดเริ่มต้นของรหัสของอักขระ "C" กฎย้อนกลับของ Fano ไม่ถือเป็น: รหัสของอักขระ "B" เกิดขึ้นพร้อมกับจุดสิ้นสุดของรหัสของอักขระ "D" ตัวเลือกนี้ไม่เหมาะสม

ตัวเลือก 3 รหัส: A - 00, B - 010, C - 01, D - 101 และ E - 111 โดยตรงสภาพฟาโน่ ไม่ได้ดำเนินการ: รหัสของอักขระ "C" เกิดขึ้นพร้อมกับจุดเริ่มต้นของรหัสของอักขระ "B" เงื่อนไขย้อนกลับไม่เป็นที่พอใจ: รหัสของอักขระ "C" เกิดขึ้นพร้อมกับจุดสิ้นสุดของรหัสของอักขระ "D" ตัวเลือกนี้ไม่เหมาะสม

ตัวเลือก 4. รหัส: A - 00, B - 010, C - 011, D - 01 และ E - 111 โดยตรงสภาพฟาโน่ ไม่ได้ดำเนินการ: รหัสของอักขระ "D" เกิดขึ้นพร้อมกับจุดเริ่มต้นของรหัสของอักขระ "B" และ "C" อย่างไรก็ตาม มีการปฏิบัติตามกฎ Fano แบบย้อนกลับ: รหัสของสัญลักษณ์ “D” ไม่ตรงกับจุดสิ้นสุดของรหัสของสัญลักษณ์อื่นๆ ทั้งหมด ด้วยเหตุนี้ตัวเลือกจึงเหมาะสม

หลังจากตรวจสอบตัวเลือกในการแก้ปัญหาเพื่อให้สอดคล้องกับทางตรงและทางกลับสภาพฟาโน่ พบว่าตัวเลือกที่ 4 ถูกต้อง

คำตอบ : 4

รหัสฮัฟฟ์แมน

แนวคิดเบื้องหลังการเขียนโค้ดของ Huffman ขึ้นอยู่กับความถี่ของการเกิดอักขระในลำดับ สัญลักษณ์ที่เกิดขึ้นบ่อยที่สุดในลำดับจะได้รับรหัสใหม่ที่มีขนาดเล็กมาก และสัญลักษณ์ที่เกิดขึ้นน้อยที่สุดจะได้รับรหัสที่เล็กมากในทางตรงกันข้าม รหัสยาว- เนื่องจากเราต้องการให้แน่ใจว่าเมื่อเราประมวลผลอินพุตทั้งหมดแล้ว อักขระที่พบบ่อยที่สุดจะใช้พื้นที่จำนวนน้อยที่สุด (และน้อยกว่าในต้นฉบับ) และอักขระที่หายากที่สุดจะใช้พื้นที่มากที่สุด (แต่เนื่องจากมันหายาก มันจึงไม่สำคัญ)

1. ในการเข้ารหัสตัวอักษร O, B, D, P, A เราตัดสินใจใช้การแทนเลขฐานสองของตัวเลข 0, 1, 2, 3 และ 4 ตามลำดับ (โดยคงศูนย์ที่ไม่มีนัยสำคัญไว้หนึ่งตัวในกรณีของ single- การแสดงตัวเลข) หากคุณเข้ารหัสลำดับตัวอักษร WATERFALL ด้วยวิธีนี้และจดผลลัพธ์ไว้ รหัสฐานแปดจากนั้นมันจะได้ผล

1) 22162

2) 1020342

3) 2131453

4) 34017

คำอธิบาย.

ขั้นแรก คุณต้องแสดงข้อมูลในเงื่อนไขตัวเลขในรหัสไบนารี่:

100

จากนั้นเข้ารหัสลำดับตัวอักษร: WATERFALL - 010010001110010 ทีนี้มาแบ่งการเป็นตัวแทนนี้เป็นแฝดสามจากขวาไปซ้ายแล้วแปลงชุดตัวเลขผลลัพธ์เป็น รหัสทศนิยมจากนั้นเป็นฐานแปด (การแสดงฐานแปดจะเหมือนกับทศนิยมเมื่อหารด้วยสาม)

010 010 001 110 010 - 22162.

2. ในการส่งข้อความผ่านช่องทางการสื่อสารที่ประกอบด้วยอักขระ A, B, C และ D เท่านั้น จะใช้การเข้ารหัสทีละอักขระ: A-00, B-11, B-010, D-011 ข้อความถูกส่งผ่านช่องทางการสื่อสาร: VBGAGV เข้ารหัสข้อความด้วยรหัสนี้ ได้รับ เลขฐานสองแปลงเป็นเลขฐานสิบหก

1) CBDADC

2) 511110

3) 5B1A

4) A1B5

คำอธิบาย.

มาเข้ารหัสลำดับตัวอักษรกัน: VBGAGV - 0101101100011010 ทีนี้มาแบ่งการแสดงนี้ออกเป็นสี่ส่วนจากขวาไปซ้ายแล้วแปลงชุดตัวเลขผลลัพธ์เป็นรหัสทศนิยมก่อนจากนั้นเป็นเลขฐานสิบหก:

0101 1011 0001 1010 - 5 11 1 10 - 5В1А.

คำตอบที่ถูกต้องแสดงไว้ที่หมายเลข 3

3. ในการเข้ารหัสข้อความที่ประกอบด้วยตัวอักษร A, B, C และ D เท่านั้น จะใช้รหัสไบนารี่ที่มีความยาวไม่เท่ากัน:

010

011

หากคุณเข้ารหัสลำดับอักขระ VGAGBV ด้วยวิธีนี้และจดบันทึกผลลัพธ์ คุณจะได้รับ:

1) ซีดีเอดีบีซี

2) A7C4

3) 412710

4) 4S7A

คำอธิบาย.

มาเข้ารหัสลำดับตัวอักษรกัน: VGAGBV - 0100110001111010 ทีนี้มาแบ่งการเป็นตัวแทนนี้ออกเป็นสี่ส่วนจากขวาไปซ้ายแล้วแปลงชุดตัวเลขผลลัพธ์เป็นรหัสทศนิยมก่อนจากนั้นเป็นเลขฐานสิบหก:

0100 1100 0111 1010 - 4 12 7 10 - 4С7А.

คำตอบที่ถูกต้องอยู่ในข้อ 4

4. ขาวดำ ภาพแรสเตอร์เข้ารหัสทีละบรรทัด เริ่มจากด้านซ้าย มุมบนและสิ้นสุดที่มุมขวาล่าง เมื่อเข้ารหัส 1 หมายถึงสีดำและ 0 หมายถึงสีขาว

เพื่อความกะทัดรัดจึงเขียนผลลัพธ์ไว้ ระบบฐานแปดการคำนวณ เลือก รายการที่ถูกต้องรหัส.

1) 57414

2) 53414

3) 53412

4) 53012

คำอธิบาย.

รหัสบรรทัดแรก: 10101

รหัสบรรทัดที่สอง: 11000

รหัสบรรทัดที่สาม: 01010

มาเขียนรหัสตามลำดับในหนึ่งบรรทัด: 101011100001010 ทีนี้มาแบ่งการเป็นตัวแทนนี้เป็นแฝดจากขวาไปซ้ายแล้วแปลงชุดตัวเลขผลลัพธ์เป็นรหัสทศนิยม ( การเป็นตัวแทนฐานแปดเกิดขึ้นพร้อมกับทศนิยมเมื่อแบ่งพาร์ติชันด้วยแฝด)

101 011 100 001 010 - 53412.

5. สำหรับ 5 ตัวอักษร ตัวอักษรละตินมีการระบุรหัสไบนารี่ (สำหรับตัวอักษรบางตัว - จากสองบิตสำหรับบางตัว - จากสาม) รหัสเหล่านี้แสดงอยู่ในตาราง:

000

110

001

กำหนดชุดตัวอักษรที่ถูกเข้ารหัสโดยสตริงไบนารี่ 1100000100110

1)แบด

2) แบดเด้

3)แบ็ค

4) แบคดีบี

คำอธิบาย.

เราจะเห็นว่าเงื่อนไขของ Fano เป็นที่พอใจ คือ ไม่มีคำรหัสเป็นจุดเริ่มต้นของคำรหัสอื่น ดังนั้นเราจึงสามารถถอดรหัสข้อความตั้งแต่ต้นได้อย่างแน่นอน

มาแบ่งโค้ดจากซ้ายไปขวาตามข้อมูลในตารางแล้วแปลเป็นตัวอักษร:

110 000 01 001 10 - ข ก ค ดี

คำตอบที่ถูกต้องอยู่ในข้อ 3

6. ในการส่งหมายเลขผ่านช่องที่มีสัญญาณรบกวน จะใช้รหัสตรวจสอบพาริตี แต่ละหลักถูกเขียนไว้ การเป็นตัวแทนไบนารีโดยมีศูนย์นำหน้าบวกด้วยความยาว 4 และผลรวมขององค์ประกอบโมดูโล 2 จะถูกเพิ่มเข้ากับลำดับผลลัพธ์ (เช่น ถ้าเราส่ง 23 เราจะได้ลำดับ 0010100110) ตรวจสอบว่าหมายเลขใดที่ส่งผ่านช่องสัญญาณในรูปแบบ 01100010100100100110?

1) 6543

2) 62926

3) 62612

4) 3456

คำอธิบาย.

ตัวอย่างแสดงให้เห็นว่าอักขระ 2 ตัวถูกเข้ารหัสด้วยเลขฐานสอง 10 หลัก (บิต) โดยจัดสรร 5 บิตสำหรับแต่ละหลัก เงื่อนไขระบุว่าแต่ละหลักเขียนด้วยรหัสความยาว 4 อักขระ ซึ่งหมายความว่าสามารถละเว้นหลักที่ห้าได้

มาทำลายมันกัน สัญกรณ์ไบนารีเป็นกลุ่มละ 5 ตัวอักษร: 01100 01010 01001 00110 เราทิ้งตัวเลขหลักสุดท้ายในแต่ละห้าตัวแล้วแปลงเป็นทศนิยม:

0110 0101 0100 0011 - 6 5 4 3.

คำตอบที่ถูกต้องอยู่ใต้ข้อ 1

7. ข้อความที่มีตัวอักษรเพียง 4 ตัวจะถูกส่งผ่านช่องทางการสื่อสาร - P, O, R, T ในการเข้ารหัสตัวอักษรจะใช้คำรหัส 5 บิต:

P - 11111, O - 11000, P - 00100, T - 00011

ชุดคำรหัสนี้มีคุณสมบัติดังต่อไปนี้:คำสองคำใด ๆ จากชุดที่แตกต่างกันอย่างน้อยสามตำแหน่ง

คุณสมบัตินี้มีความสำคัญสำหรับการถอดรหัสข้อความเมื่อมีสัญญาณรบกวน (สมมติว่า บิตที่ส่งอาจบิดเบี้ยวได้แต่อย่าหายไป) ข้อความที่เข้ารหัสจะถือว่าได้รับอย่างถูกต้องหากความยาวเป็นทวีคูณของ 5 และแต่ละ quint แตกต่างจากคำรหัสบางคำในตำแหน่งไม่เกินหนึ่งตำแหน่ง ในกรณีนี้ เชื่อกันว่าทั้งห้าเข้ารหัสตัวอักษรที่เกี่ยวข้อง ตัวอย่างเช่น หากได้รับห้า 00000 จะถือว่ามีการส่งจดหมาย P

ในบรรดาข้อความด้านล่าง ให้ค้นหาข้อความที่ได้รับอย่างถูกต้องและระบุการถอดรหัส (ช่องว่างไม่สำคัญ)

11011 11100 00011 11000 01110

00111 11100 11110 11000 00000

1) น้ำท่วม

2) โรเตอร์

3) ขวาน

4) ไม่มีข้อความใดที่ได้รับอย่างถูกต้อง

คำอธิบาย.

ความยาวของข้อความทั้งสองเป็นจำนวนเท่าของห้า

วิเคราะห์ข้อความแรก “11011 11100 00011 11000 01110” เราได้ข้อสรุปว่าได้รับไม่ถูกต้องเนื่องจากไม่มีคำใดที่แตกต่างจากคำว่า “01110” ในตำแหน่งเดียวเท่านั้น

มาดูข้อความที่สองกัน เมื่อพิจารณาว่าแต่ละคำห้าคำนั้นแตกต่างจากคำรหัสบางคำในตำแหน่งไม่เกินหนึ่งตำแหน่ง จึงสามารถถอดรหัสได้เป็น "AX" เท่านั้น

8. รหัส 5 บิตใช้เพื่อส่งข้อมูลผ่านช่องทางการสื่อสาร ข้อความประกอบด้วยตัวอักษร A, B และ C เท่านั้น ซึ่งเข้ารหัสด้วยคำรหัสต่อไปนี้:

เอ - 10010, บี - 11111, ซี - 00101

อาจมีสัญญาณรบกวนระหว่างการส่งสัญญาณ อย่างไรก็ตาม คุณสามารถลองแก้ไขข้อผิดพลาดบางอย่างได้ สองอย่างนี้ก็ได้ สามรหัสคำต่างกันอย่างน้อยสามตำแหน่ง ดังนั้นหากเกิดข้อผิดพลาดในตำแหน่งใดตำแหน่งหนึ่งเมื่อส่งคำก็สามารถคาดเดาได้อย่างมีการศึกษาว่าจดหมายฉบับใดถูกส่งไป (เขาบอกว่า "รหัสแก้ไขข้อผิดพลาดหนึ่งข้อ") เช่น หากได้รับรหัสคำ 00100 ก็ถือว่าส่งตัวอักษร B (ความแตกต่างจากคำรหัสสำหรับ B อยู่ในตำแหน่งเดียวเท่านั้น สำหรับ คำรหัสอื่นมีความแตกต่างกันมากกว่า) หากคำรหัสที่ได้รับ หากคำแตกต่างจากคำรหัสสำหรับตัวอักษร A, B, C มากกว่าหนึ่งตำแหน่งก็ถือว่ามีข้อผิดพลาดเกิดขึ้น (ระบุโดย “เอ็กซ์”)

ได้รับข้อความ 10000 10101 11001 10111 ถอดรหัสข้อความนี้ - เลือก ตัวเลือกที่ถูกต้อง.

1) เอวีบีบี

2) xxxx

3) เอบีxบี

4) อ่าห์บี

คำอธิบาย.

เราถอดรหัสทุกคำในข้อความ คำแรก: 10,000 แตกต่างจากตัวอักษร A ในตำแหน่งเดียวเท่านั้น คำที่สอง: 10101 แตกต่างจากตัวอักษร B ในตำแหน่งเดียวเท่านั้น คำที่สาม: 11001 แตกต่างจากตัวอักษรใดๆ ที่มากกว่าหนึ่งตำแหน่ง คำที่สี่: 10111 แตกต่างจากตัวอักษร B ในตำแหน่งเดียวเท่านั้น

คำตอบ: ABxB

9. ในการเข้ารหัสลำดับบางอย่างที่ประกอบด้วยตัวอักษร A, B, C, D และ D เราตัดสินใจใช้รหัสไบนารี่ที่ไม่สม่ำเสมอ ซึ่งช่วยให้เราสามารถถอดรหัสลำดับไบนารี่ที่ปรากฏที่ด้านรับของช่องทางการสื่อสารได้อย่างชัดเจน สำหรับตัวอักษร A, B, C และ D จะใช้คำรหัสต่อไปนี้: A - 111, B - 110, C - 101, D - 100

ระบุว่าคำรหัสใดจากรายการด้านล่างที่สามารถใช้เพื่อเข้ารหัสตัวอักษร D รหัสจะต้องเป็นไปตามคุณสมบัติของการถอดรหัสที่ชัดเจน หากสามารถใช้ได้มากกว่าหนึ่งคำรหัส ให้ป้อนคำที่สั้นที่สุด

1) 1

2) 0

3) 01

4) 10

คำอธิบาย.

เพื่อให้ข้อความที่เขียนโดยใช้รหัสที่มีความยาวไม่เท่ากันสามารถถอดรหัสได้อย่างชัดเจน จะต้องไม่มีรหัสใดเป็นจุดเริ่มต้นของรหัสอื่น (ยาวกว่า) ลองดูตัวเลือกสำหรับตัวอักษร D โดยเริ่มจากตัวที่สั้นที่สุด

1) D=1: รหัสตัวอักษร D คือจุดเริ่มต้นของรหัสตัวอักษรทั้งหมดที่นำเสนอ ดังนั้นตัวเลือกนี้จึงไม่เหมาะ

2) D=0: รหัสสำหรับตัวอักษร D ไม่ใช่รหัสเริ่มต้นของรหัสอื่น ดังนั้นตัวเลือกนี้จึงเหมาะสม

3) D=01: รหัสสำหรับตัวอักษร D ไม่ใช่รหัสเริ่มต้นของรหัสอื่น ดังนั้นตัวเลือกนี้จึงเหมาะสม

4) D=10: รหัสสำหรับตัวอักษร D คือจุดเริ่มต้นของรหัสสำหรับตัวอักษร B และ G ดังนั้นตัวเลือกนี้จึงไม่เหมาะ

ดังนั้นจึงเหมาะสมสองตัวเลือก: 0 และ 01 0 สั้นกว่า 01

10. ข้อความที่มีตัวอักษรเพียง 4 ตัวจะถูกส่งผ่านช่องทางการสื่อสาร:

อี เอ็น โอ ที

ในข้อความใดๆ ตัวอักษรส่วนใหญ่คือ O ตัวอักษรที่พบบ่อยรองลงมาคือ E ตามด้วย N ตัวอักษร T นั้นพบน้อยกว่าตัวอักษรอื่นๆ

ในการส่งข้อความ คุณต้องใช้รหัสไบนารี่ที่ไม่สม่ำเสมอซึ่งอนุญาตให้ถอดรหัสได้ชัดเจน ข้อความควรสั้นที่สุดเท่าที่จะทำได้ ผู้เข้ารหัสสามารถใช้รหัสใดรหัสหนึ่งที่แสดงด้านล่าง เขาควรเลือกรหัสไหน?

1) E−0, N−1, O−00, T−11

2) O−1, N−0, E−01, T−10

3) E−1, N−01, O−001, T−000

4) O−0, N−11, E−101, T−100

คำอธิบาย.

ให้เราเลือกรหัสที่เข้าเงื่อนไข Fano คือรหัส 3 และ 4

เพื่อให้ข้อความสั้นที่สุดเท่าที่จะทำได้ ยิ่งตัวอักษรปรากฏบ่อย รหัสก็ยิ่งสั้นลง

ดังนั้น คำตอบคือ 4 เนื่องจากตัวอักษร O เป็นตัวอักษรที่พบบ่อยที่สุด และตัวเลือกที่ 4 จะใช้อักขระตัวเดียวในการเข้ารหัส

11. ในการเข้ารหัสลำดับบางอย่างที่ประกอบด้วยตัวอักษร K, L, M, N เราตัดสินใจใช้รหัสไบนารี่ที่ไม่สม่ำเสมอซึ่งตรงตามเงื่อนไขของ Fano สำหรับตัวอักษร H เราใช้รหัสคำ 0 สำหรับตัวอักษร K เราใช้รหัสคำ 110 ความยาวรวมที่สั้นที่สุดที่เป็นไปได้ของคำรหัสทั้งสี่คือเท่าใด

1) 7

2) 8

3) 9

4) 10

บันทึก. เงื่อนไขของ Fano หมายความว่าไม่มีคำรหัสใดเป็นจุดเริ่มต้นของคำรหัสอื่น ทำให้สามารถถอดรหัสข้อความที่เข้ารหัสได้อย่างชัดเจน

คำอธิบาย.

ให้เราค้นหาสัญลักษณ์ที่เหลืออีกสองตัวซึ่งเป็นการแสดงที่สั้นที่สุดซึ่งตรงตามเงื่อนไขของ Fano ไม่สามารถใช้ Codeword 1 ได้ เนื่องจากจะฝ่าฝืนเงื่อนไขของ Fano ในบรรดาคำรหัสสองหลัก สามารถใช้คำ 10 ได้ แต่ไม่สามารถใช้คำ 11 และ 01 ได้ ด้วยการสร้างรหัสนี้ จึงไม่สามารถเลือกคำรหัสสองหลักสำหรับสัญลักษณ์ที่สี่ได้ ดังนั้นเราจึงใช้คำสามหลักคือ 111

ดังนั้น ความยาวรวมที่สั้นที่สุดที่เป็นไปได้ของคำรหัสทั้งสี่คือ 1 + 3 + 2 + 3 = 9

คำตอบที่ถูกต้องอยู่ในข้อ 3

12. ข้อความจะถูกส่งผ่านช่องทางการสื่อสาร โดยแต่ละตัวอักษรประกอบด้วย ตัวอักษร A 16 ตัว ตัวอักษร B 8 ตัว ตัวอักษร C 4 ตัว และตัวอักษร G 4 ตัว (ไม่มีตัวอักษรอื่นในข้อความ) ตัวอักษรแต่ละตัวจะถูกเข้ารหัสเป็นลำดับไบนารี เมื่อเลือกรหัสจะต้องคำนึงถึงข้อกำหนดสองประการ:

ก) ไม่ใช่คำรหัสเดียวที่เป็นจุดเริ่มต้นของอีกคำหนึ่ง (นี่เป็นสิ่งจำเป็นสำหรับรหัสเพื่อให้สามารถถอดรหัสได้ชัดเจน)

b) ความยาวรวมของข้อความที่เข้ารหัสควรสั้นที่สุดเท่าที่จะทำได้

คุณควรเลือกรหัสใดต่อไปนี้เพื่อเข้ารหัสตัวอักษร A, B, C และ D

1) ก:0, ข:10, ค:110, ง:111

2) ก:0, ข:10, ค:01, ง:11

3) ก:1, ข:01, ค:011, ง:001

4) ก:00, ข:01, ค:10, ง:11

คำอธิบาย.

2 และ 3 ไม่เหมาะ เนื่องจากมีรหัสคู่กัน ซึ่งหนึ่งในนั้นคือจุดเริ่มต้นของอีกรหัส

ความยาวของข้อความเมื่อใช้รหัสแรกจะเท่ากับ .

ความยาวของข้อความเมื่อใช้รหัสที่สี่จะเท่ากับ .

การใช้รหัสแรกจะทำให้ข้อความสั้นลง ดังนั้นจึงควรใช้รหัสนี้

คำถามเกิดขึ้นตามธรรมชาติ: มีรหัสที่ไม่สม่ำเสมอซึ่งการถอดรหัสจะไม่ซ้ำกันเสมอไปหรือไม่ ใช่ พวกมันมีอยู่จริง

โรเบิร์ต ฟาโน่ได้กำหนดไว้ดังต่อไปนี้ สภาพที่เพียงพอว่ารหัสมีการถอดรหัสที่ชัดเจน: ไม่มีคำรหัสใดที่เป็นจุดเริ่มต้นของคำรหัสอื่นหากตรงตามเงื่อนไขนี้จะไม่มีปัญหาในการถอดรหัส

อนุญาต เอ 1, เอ 2และ เอ 3- คำที่อยู่เหนือตัวอักษรบางตัวเป็นเช่นนั้น เอ 1=ก 2 ก 3นั่นคือ เอ 1ได้รับจาก เอ 2เพียงแค่เพิ่มคำลงไป เอ 3(คำ เอ 2หรือ เอ 3อาจเป็นอักขระตัวเดียว) มาตั้งชื่อคำกันเถอะ เอ 2ซึ่งเป็นส่วนเริ่มต้นของคำ เอ 1, คำนำหน้าคำ เอ 1- ตัวอย่างเช่นสำหรับคำว่า 11101101 คำนำหน้าจะเป็นคำ 1110110 , 111011 , 11101 , 1110 , 111 , 11 , 1 .

จากนั้นเงื่อนไข Fano สำหรับโค้ดสามารถกำหนดได้ดังนี้:

ไม่มีคำรหัสใดที่เป็นคำนำหน้าของคำรหัสอื่น.

รหัสที่ตรงตามเงื่อนไขของ Fano จะถูกเรียก คำนำหน้า- ดังนั้นหากโค้ดนำหน้า จะทำให้ถอดรหัสได้ชัดเจน

เช่น รหัสที่ประกอบด้วยคำรหัส {0, 10, 11} เป็นคำนำหน้าและลำดับโค้ดต่อไปนี้ 01001101110 สามารถแบ่งออกเป็นคำรหัสได้ด้วยวิธีเดียว: 0 10 0 11 0 11 10 .

รหัสที่ประกอบด้วยคำรหัส {0, 10, 11, 100} ไม่ใช่คำนำหน้าและไม่อนุญาตให้ถอดรหัสอย่างชัดเจน อันที่จริงลำดับเดียวกันสามารถแบ่งออกเป็นคำรหัสได้ ในรูปแบบที่แตกต่างกัน: 0 10 0 11 0 11 10 หรือ 0 100 11 0 11 10 .

สิ่งสำคัญคือต้องทราบว่าเงื่อนไข Fano เป็นเพียงเงื่อนไขเพียงพอสำหรับการถอดรหัสรหัสที่ชัดเจน แต่ไม่ใช่เงื่อนไขที่จำเป็น

ตัวอย่างเช่น รหัสง่ายๆ ที่ประกอบด้วยคำรหัสเพียงสองคำเท่านั้น {1, 10} เห็นได้ชัดว่าไม่ใช่คำนำหน้า แต่ให้การถอดรหัสที่ชัดเจนของลำดับโค้ดใด ๆ ที่ได้รับจากการเข้ารหัสด้วยโค้ดนี้ อันที่จริง ในลำดับดังกล่าว เลขศูนย์สองตัวไม่สามารถปรากฏติดกัน จากนั้นเราแทนที่แต่ละศูนย์ด้วยหน่วยที่อยู่ข้างหน้าด้วยรูปภาพผกผันของคำรหัสที่สอง และที่เหลือทั้งหมดด้วยรูปภาพผกผันของคำแรก นี่จะเป็นการถอดรหัสที่ชัดเจน

มีคนอื่นน้อยกว่า รหัสง่ายๆมีทรัพย์สินเหมือนกัน ตัวอย่างเช่น รหัส {01,10,011} ไม่ได้นำหน้าด้วย แต่มีการถอดรหัสที่ชัดเจน (ลองพิสูจน์ด้วยตัวเอง)

เราจะทราบได้อย่างไรว่ารหัสสามารถถอดรหัสได้โดยไม่ซ้ำกันหากเงื่อนไขของ Fano ไม่เป็นไปตามเงื่อนไข คุณสามารถใช้วิธีการต่อไปนี้

ปล่อยให้คำว่า เอ 2เป็น คำนำหน้าคำ เอ 1- แล้ว เอ 1=ก 2 ก 3, ที่ไหน เอ 3คำบางคำซึ่งเป็นส่วนสุดท้ายของคำ เอ 1- โทรเลย 3 คำต่อท้ายสองสามคำ เอ 1และ เอ 2ซึ่งหนึ่งในนั้นคือคำนำหน้าของอีกอันและคู่นั้นเอง เอ 1และ เอ 2โทรเลย คำนำหน้า.

ให้เราพิจารณาคู่คำนำหน้าของโค้ดเวิร์ดทั้งหมดในโค้ดที่กำหนด และสร้างชุดของคำต่อท้ายทั้งหมดจากพวกมัน ต่อไป เราจะพิจารณาคู่คำนำหน้าทั้งหมด คู่หนึ่งเป็นคำรหัส และอีกคู่เป็นคำต่อท้าย และเราจะสร้างคำต่อท้ายสำหรับคำเหล่านั้น โดยขยายชุดคำต่อท้าย ดำเนินการตามขั้นตอนนี้ต่อไปจนกว่าคำต่อท้ายใหม่จะหยุดปรากฏ รหัสสามารถถอดรหัสได้เฉพาะในกรณีที่ไม่มีส่วนต่อท้ายที่ตรงกับคำรหัสใดๆ

ตัวอย่างเช่นสำหรับรหัส {01,10,011} จะมีคำต่อท้ายมากมาย {1,0,11} - ไม่มีส่วนต่อท้ายใดที่ตรงกับคำในโค้ดใดๆ ดังนั้นจึงอาจโต้แย้งได้ว่าโค้ดนี้สามารถถอดรหัสได้ไม่ซ้ำกัน

ภารกิจที่ 1ตรวจสอบว่ารหัสต่อไปนี้มีคุณสมบัติในการถอดรหัสที่ไม่ซ้ำกันหรือไม่: ก) {110, 11, 100, 00, 10} ข) {100, 001, 101, 1101, 11011} .

ลำดับการถอดรหัสที่ได้รับด้วยรหัสที่ไม่ใช่คำนำหน้าจำเป็นต้องมีการวิเคราะห์ที่ซับซ้อนมากกว่ารหัสนำหน้า รหัสคำนำหน้าบางครั้งเรียกว่า ทันที(ถอดรหัสได้ทันที) เนื่องจากสำหรับพวกเขา เมื่ออ่านลำดับรหัส จุดสิ้นสุดของคำรหัสจะรับรู้ได้ทันทีเมื่อถึงสัญลักษณ์สุดท้ายของคำ นี่คือข้อดีของรหัสนำหน้า

ลองพิจารณาตารางรหัสอื่น: A B C D D 000 01 10 011 100 ที่นี่เงื่อนไข Fano ไม่เป็นที่พอใจเนื่องจากรหัสของตัวอักษร B (01) เป็นจุดเริ่มต้นของรหัสของตัวอักษร G (011) และรหัสของตัวอักษร D (100) ขึ้นต้นด้วยรหัสตัวอักษร B ( 10) อย่างไรก็ตาม สามารถสังเกตได้ว่าเงื่อนไข Fano "ผกผัน" เป็นไปตามนั้น: ไม่มีโค้ดใดที่เป็นจุดสิ้นสุดของโค้ดอื่น (โค้ดดังกล่าวเรียกว่า postfix) ดังนั้นข้อความที่เข้ารหัสจึงสามารถถอดรหัสได้อย่างชัดเจนตั้งแต่ตอนท้าย ตัวอย่างเช่น พิจารณาเชน 011000110110 จดหมายฉบับสุดท้ายในข้อความนี้ต้องเป็น B เท่านั้น (รหัส 10): B 0110001101 10 ตัวอักษรตัวที่สองต่อท้ายคือ B (รหัส 01): B B 01100011 01 10 และอื่นๆ: B D G B B 01 100 011 01 10

สไลด์ 26จากการนำเสนอ “วิธีการเข้ารหัสข้อมูล”- ขนาดของไฟล์เก็บถาวรพร้อมการนำเสนอคือ 734 KB
ดาวน์โหลดการนำเสนอ

วิธีการเข้ารหัส

สรุปการนำเสนออื่นๆ

"การเข้ารหัสไบนารี่" - ตัวเลข การเข้ารหัสแบบไบนารี ข้อมูลข้อความ- ตารางการเข้ารหัส ปริมาณข้อมูลของข้อความ การเข้ารหัสไบนารี่ในคอมพิวเตอร์ การเข้ารหัสข้อมูลข้อความ ตารางรหัสขยาย เครื่องหมาย. รหัสไบนารี่ที่ไม่ซ้ำ ตัวอักษรของอักษรละติน การใช้ระบบไบนารี่ คอมพิวเตอร์.

“การเข้ารหัสข้อมูลในรหัสไบนารี่” - คำจำกัดความ ระบบตัวเลข ระบบไบนารี่การคำนวณ การเข้ารหัส ข้อมูลการเข้ารหัส ยกตัวอย่างการเขียนโค้ด ระบบทศนิยมการคำนวณ ความหมายของตัวเลข ความหมายของตัวเลขขึ้นอยู่กับตำแหน่ง ตัวอักษร ภาษา. โรมัน ระบบที่ไม่ใช่ตำแหน่ง- การเข้ารหัสแบบไบนารี ที่นี่เข้ารหัสอะไร?

“วิธีการเข้ารหัส” - หมายเลขคอลัมน์ จดหมาย ข้อความต้นฉบับ- ข้อมูลการเข้ารหัส วิธีการเข้ารหัสข้อมูล ถอดรหัสข้อมูล ข้อมูลที่ส่ง- ในโลกของรหัส การเข้ารหัสอัตโนมัติ วิธีการประสานงาน ข้อดีและข้อเสีย ความหลากหลายของรหัส เด็กผู้ชาย. เรียกอะไรได้บ้าง. สมุดบันทึกในส่วนของการจัดเก็บข้อมูล ข้อความที่เข้ารหัส ผู้ให้บริการข้อมูล คำหลัก- แก้ปริศนา

“วิธีการเข้ารหัสข้อมูล” - ในหน่วยความจำคอมพิวเตอร์ ข้อมูลจะแสดงเป็นรหัสไบนารี่ การเข้ารหัสและการถอดรหัส คุณสามารถเข้ารหัสข้อมูลได้ วิธีการเข้ารหัสข้อมูล มาสร้างตารางโค้ดง่ายๆกันดีกว่า หากต้องการค้นหาคำที่เข้ารหัสให้ใช้เฉพาะพยางค์แรกเท่านั้น สิ่งที่ลมอ่านบนธงของเรือใบที่กำลังจะมาถึง ขึ้นมาด้วย ทางของตัวเองการเข้ารหัสตัวอักษรของตัวอักษรรัสเซีย การมอบหมายงาน ข้อมูลที่เข้ารหัส หลุยส์ เบรลล์ เป็นผู้คิดค้น วิธีพิเศษการนำเสนอข้อมูล

“วิธีการเข้ารหัสข้อมูล” - การเข้ารหัสแบบไบนารีในคอมพิวเตอร์ จำนวนข้อมูล โทรเลขแสงแชปป์ สภาพฟาโน่. ใช้โค้ดอะไรครับ. ได้รับข้อความแล้ว "ใช่" หรือ "ไม่ใช่" โทรเลขเครื่องแรก วิธีการเข้ารหัสข้อมูล ข้อมูลการบันทึก ทำไม การเข้ารหัสไบนารี- ธงสัญญาณ การเข้ารหัส การเข้ารหัสและการถอดรหัส ข้อมูลการเข้ารหัส การเลือกวิธีการเข้ารหัส ประเภทของข้อมูล มีกี่ตัวเลือก?

สวัสดี! ฉันชื่อ Alexander Georgievich เป็นครูสอนพิเศษมืออาชีพในมอสโกในด้านวิทยาการคอมพิวเตอร์และการเขียนโปรแกรม คุณเคยประสบปัญหาเกี่ยวกับการเขียนโค้ดและคุณสับสนเกี่ยวกับอัลกอริทึมในการแก้ปัญหาหรือไม่? คุณจำเป็นต้องพบอย่างเร่งด่วนสภาพฟาโน่และสมัครเรียนบทเรียนส่วนตัวกับฉันด้วย ในบทเรียนของฉัน ฉันมุ่งเน้นไปที่การแก้แบบฝึกหัดเฉพาะเรื่องที่เรียบง่ายและซับซ้อน

สภาพตรงของฟาโน่หมายความว่าอย่างไร?

สภาพฟาโน่ตั้งชื่อตามผู้สร้าง Robert Fano นักวิทยาศาสตร์ชาวอิตาเลียนอเมริกัน เงื่อนไขนี้จำเป็นในทฤษฎีการเข้ารหัสเมื่อสร้างโค้ดที่สิ้นสุดด้วยตัวเอง เมื่อพิจารณาจากคำศัพท์ที่แตกต่างกัน รหัสดังกล่าวจึงเรียกว่ารหัสนำหน้า

เงื่อนไขนี้สามารถกำหนดได้ดังนี้: “ ไม่มีคำรหัสใดที่สามารถทำหน้าที่เป็นจุดเริ่มต้นของคำรหัสอื่นได้».

จากมุมมองทางคณิตศาสตร์ สามารถกำหนดเงื่อนไขได้ดังนี้: “ ถ้าโค้ดมีคำว่าB จากนั้นสำหรับสตริงที่ไม่ว่างเปล่าไม่มีคำ C BC ในโค้ด».

ภาวะฟาโน่แบบย้อนกลับหมายถึงอะไร?

นอกจากนี้ยังมีกฎ Fano แบบผกผันซึ่งมีการกำหนดดังนี้: “ ไม่มีคำรหัสใดที่สามารถทำหน้าที่เป็นจุดสิ้นสุดของคำรหัสอื่นได้».

จากมุมมองทางคณิตศาสตร์ เงื่อนไขผกผันสามารถกำหนดได้ดังนี้: “ หากโค้ดมีคำว่า B ดังนั้นสำหรับสตริง C ที่ไม่ว่าง คำว่า CB จะไม่มีอยู่ในโค้ด».

การประยุกต์ใช้เงื่อนไข Fano ในทางปฏิบัติ

ลองพิจารณาดู หมายเลขโทรศัพท์วี โทรศัพท์แบบดั้งเดิม- หากมีหมายเลข "102" อยู่แล้ว ก็จะไม่มีการออกหมายเลข "1029876" หากมีการโทรออกสามหลักแรก PBX จะหยุดรับรู้และรับตัวเลขอื่นๆ ทั้งหมด โดยเชื่อมต่อกับผู้สมัครสมาชิกด้วยหมายเลข 102 อย่างไรก็ตาม กฎนี้ใช้ไม่ได้กับผู้ให้บริการ การสื่อสารเคลื่อนที่- นี่เป็นเพราะความจริงที่ว่าในการหมุนหมายเลขคุณต้องกดปุ่มที่เกี่ยวข้องซึ่งส่วนใหญ่เป็นปุ่มที่มีภาพสีเขียว โทรศัพท์มือถือ- ด้วยเหตุนี้ ตัวเลข "102", "1020" และ "1029876" จึงสามารถมีอยู่และกำหนดให้กับผู้รับที่แตกต่างกันได้

สภาพปัญหา:ให้ลำดับที่ประกอบด้วยตัวอักษร "A", "B", "C", "D" และ "E" ในการเข้ารหัสลำดับที่กำหนดจะใช้รหัสไบนารี่ที่ไม่สม่ำเสมอซึ่งเป็นไปได้ที่จะทำการถอดรหัสที่ไม่คลุมเครือ

คำถาม: เป็นไปได้ไหมที่สัญลักษณ์ตัวใดตัวหนึ่งจะลดความยาวของคำรหัสในลักษณะที่จะรักษาความเป็นไปได้ในการถอดรหัสที่ชัดเจน ในกรณีนี้ รหัสของสัญลักษณ์ที่เหลือควรจะไม่เปลี่ยนแปลง

สารละลาย: เพื่อรักษาความเป็นไปได้ของการถอดรหัส ก็เพียงพอที่จะปฏิบัติตามโดยตรงหรือย้อนกลับเงื่อนไขของฟาโน่- เรามาตรวจสอบตัวเลือกที่ 1, 3 และ 4 กันตามลำดับ หากไม่มีตัวเลือกใดที่เหมาะสม คำตอบที่ถูกต้องจะเป็นตัวเลือกที่ 2 (เป็นไปไม่ได้)

ตัวเลือก 1. รหัส: A - 00, B - 01, C - 011, D - 101 และ E - 111 โดยตรง สภาพฟาโน่ไม่ได้ดำเนินการ: รหัสของอักขระ "B" เกิดขึ้นพร้อมกับจุดเริ่มต้นของรหัสของอักขระ "C" กฎย้อนกลับของ Fano ไม่ถือเป็น: รหัสของอักขระ "B" เกิดขึ้นพร้อมกับจุดสิ้นสุดของรหัสของอักขระ "D" ตัวเลือกนี้ไม่เหมาะสม

ตัวเลือก 3 รหัส: A - 00, B - 010, C - 01, D - 101 และ E - 111 โดยตรง สภาพฟาโน่ไม่ได้ดำเนินการ: รหัสของอักขระ "C" เกิดขึ้นพร้อมกับจุดเริ่มต้นของรหัสของอักขระ "B" เงื่อนไขย้อนกลับไม่เป็นที่พอใจ: รหัสของอักขระ "C" เกิดขึ้นพร้อมกับจุดสิ้นสุดของรหัสของอักขระ "D" ตัวเลือกนี้ไม่เหมาะสม

ตัวเลือก 4. รหัส: A - 00, B - 010, C - 011, D - 01 และ E - 111 โดยตรง สภาพฟาโน่ไม่ได้ดำเนินการ: รหัสของอักขระ "D" เกิดขึ้นพร้อมกับจุดเริ่มต้นของรหัสของอักขระ "B" และ "C" อย่างไรก็ตาม มีการปฏิบัติตามกฎ Fano แบบย้อนกลับ: รหัสของสัญลักษณ์ “D” ไม่ตรงกับจุดสิ้นสุดของรหัสของสัญลักษณ์อื่นๆ ทั้งหมด ด้วยเหตุนี้ตัวเลือกจึงเหมาะสม

หลังจากตรวจสอบตัวเลือกในการแก้ปัญหาเพื่อให้สอดคล้องกับทางตรงและทางกลับ สภาพฟาโน่พบว่าตัวเลือกที่ 4 ถูกต้อง

คำตอบ: 4

และตอนนี้ฉันขอแนะนำให้คุณทำความคุ้นเคยกับโซลูชันมัลติมีเดียสำหรับปัญหาที่เสนอในเวอร์ชันสาธิตของ Unified State Exam ในวิทยาการคอมพิวเตอร์และ ICT อนึ่ง, งานนี้หมายถึงประเภทของปัญหาที่แก้ไขโดยใช้ เงื่อนไขของฟาโน่.

ยังมีคำถามอยู่ใช่ไหม?

หากหลังจากอ่านเอกสารนี้แล้ว หากคุณยังคงมีคำถาม ความเข้าใจผิด หรือต้องการรวมเนื้อหาที่คุณกล่าวถึงไว้ โซลูชั่นการปฏิบัติแล้วโทรมาสมัครเรียนส่วนตัวด้านวิทยาการคอมพิวเตอร์และ ICT กับฉัน

หากต้องการใช้ ดูตัวอย่างการนำเสนอสร้างบัญชีของคุณเอง ( บัญชี) Google และเข้าสู่ระบบ: https://accounts.google.com


คำอธิบายสไลด์:

การถอดรหัสที่ชัดเจน สภาพตรงและผกผัน Fano ครูวิทยาการคอมพิวเตอร์และ ICT MBOU โรงเรียนมัธยมหมายเลข 7 Okha ภูมิภาค Sakhalin Sergienko Tatyana Gennadievna

ภารกิจที่ 1 ให้เลือกรหัสต่อไปนี้เพื่อเข้ารหัสวลี “สวัสดีตอนเช้า”: GOODBREUT Space 111 000 00 1 01 0 10 11

รหัสตัวอักษรจะ "ต่อกัน" ให้เป็นสตริงบิตเดียวและส่งผ่านเครือข่ายเช่น: สวัสดีตอนเช้า → 11100000100001110101000 ที่ปลายทาง เกิดปัญหา - วิธีคืนค่าข้อความต้นฉบับและเป็นไปได้หรือไม่

11100000100001110101000 ถอดรหัส ข้อความนี้เป็นไปได้ในรูปแบบต่างๆ ให้เราสมมติด้วยว่ามันประกอบด้วยตัวอักษร P – 1 และ U – 0 เท่านั้น จากนั้นเราจะได้ RRRUUUUURUUURRRURRUUUU นั่นคือ ชุดตัวอักษรที่ไม่มีความหมาย

รหัสเรียกว่าถอดรหัสได้โดยไม่ซ้ำกันหากข้อความรหัสใด ๆ สามารถถอดรหัสได้ วิธีเดียวเท่านั้น(อย่างแน่นอน).

ซึ่งหมายความว่ารหัสนี้ไม่สามารถถอดรหัสได้โดยเฉพาะ

ภารกิจที่ 2 รหัสชุด ในวลีเดียวกันนี้ เราใช้รหัสชุด: D O R E U T Space 111 000 001 101 011 010 100 110

รหัสเครื่องแบบไม่ประหยัด - ยาวกว่ารหัสที่ไม่เหมือนกันมาก สิ่งนี้นำไปสู่การเข้ารหัสที่ซับซ้อนมากขึ้น แต่ในขณะเดียวกันพวกเขาก็ถูกถอดรหัสอย่างไม่น่าสงสัยซึ่งทำให้งานง่ายขึ้นโดยธรรมชาติ

ภารกิจที่ 3 เพื่อลดความยาวของข้อความ คุณสามารถลองใช้โค้ดที่ไม่เท่ากันได้ เช่น รหัสที่มีคำรหัสที่สอดคล้องกัน ตัวละครที่แตกต่างกันตัวอักษรต้นฉบับสามารถมีความยาวต่างกันได้ตั้งแต่หนึ่งถึงหลายอักขระ

เราใช้ รหัสต่อไปนี้: 01สตริงบิตนี้ถูกถอดรหัสไม่ซ้ำกัน D O R E U T พื้นที่ 01 00 1011 100 1010 1101 1110 1111

ตัวอักษรตัวแรกคือ D (รหัส 01) เพราะ ไม่มีรหัสคำอื่นที่ขึ้นต้นด้วย 01 ตัวอักษรตัวที่สองคือ O (รหัส 00) ไม่มีคำอื่นที่ขึ้นต้นด้วย 00 คุณสมบัติเดียวกันนี้เรียกว่าเงื่อนไข Fano ใช้สำหรับคำรหัสของตัวอักษรอื่น

เงื่อนไขของ FANO ไม่มีคำรหัสเกิดขึ้นพร้อมกับจุดเริ่มต้นของคำรหัสอื่น รหัสดังกล่าวเรียกว่ารหัสนำหน้า (ถอดรหัสตั้งแต่ต้นข้อความ) และถูกถอดรหัสโดยไม่ซ้ำกัน

ภารกิจที่ 4 ลองพิจารณาอีกโค้ดหนึ่ง: มันไม่ใช่คำนำหน้าเพราะว่า รหัสของตัวอักษร D (10) เกิดขึ้นพร้อมกับจุดเริ่มต้นของรหัสของตัวอักษร B (1011), U (1,000) และรหัสของตัวอักษร O (00) เกิดขึ้นพร้อมกับจุดเริ่มต้นของรหัสของตัวอักษร P ( 001) D O R E U T พื้นที่ 10 00 1011 001 0101 1000 0111 1111

มาเข้ารหัสข้อความของเรากันเถอะ: GOOD MORNING → 10 00 1011 001 00 0101 1111 1000 0111 001 00 มาเริ่มถอดรหัสตั้งแต่ต้นกันดีกว่า อันแรกคือ D หรือ U แล้วมันก็ไปโดยทั่วไป ตัวเลือกที่แตกต่างกัน: P หรือ B... คือ ต้อง “มอง” ข้างหน้าซึ่งไม่สะดวกอย่างยิ่ง

มาลองถอดรหัสข้อความจากตอนท้าย - มันถูกถอดรหัสอย่างแน่นอน! เป็นไปตามเงื่อนไขของ Fano แบบผกผัน: ไม่มีคำรหัสใดเกิดขึ้นพร้อมกับการสิ้นสุดของคำรหัสอื่น

รหัสที่ตรงตามเงื่อนไข Fano แบบผกผันเรียกว่า postfix

ให้เราสรุป: ข้อความจะถูกถอดรหัสโดยไม่ซ้ำกันหากเงื่อนไข Fano โดยตรงหรือผกผันเป็นไปตามรหัสที่ใช้

สภาพฟาโน่ก็เพียงพอแล้ว แต่ยังไม่เพียงพอ สภาพที่จำเป็นความสามารถในการถอดรหัสที่ชัดเจน ซึ่งหมายความว่า: - สำหรับความสามารถในการถอดรหัสที่ชัดเจน ก็เพียงพอที่จะปฏิบัติตามเงื่อนไขอย่างน้อยหนึ่งในสองเงื่อนไข - โดยตรงหรือผกผัน - อาจมีรหัสที่ไม่ตรงตามเงื่อนไข Fano โดยตรงหรือแบบผกผัน แต่ยังคงให้การถอดรหัสที่ชัดเจนเพราะ มิฉะนั้นความหมายของสำนวนจะหายไป

ภารกิจที่ 5 ในการเข้ารหัสลำดับบางอย่างที่ประกอบด้วยตัวอักษร A, B, C, D และ D จะใช้รหัสไบนารี่ที่ไม่สม่ำเสมอซึ่งทำให้สามารถถอดรหัสลำดับไบนารี่ผลลัพธ์ได้อย่างชัดเจน นี่คือรหัส: A – 00, B – 01, C – 100, D – 101, D – 110

เป็นไปได้หรือไม่ที่จะลดความยาวของโค้ดเวิร์ดสำหรับตัวอักษรตัวใดตัวหนึ่งเพื่อให้โค้ดยังคงสามารถถอดรหัสได้อย่างชัดเจน รหัสของตัวอักษรที่เหลือไม่ควรเปลี่ยนแปลง เลือกคำตอบที่ถูกต้อง: 1) สำหรับตัวอักษร D -11 2) เป็นไปไม่ได้ 3) สำหรับตัวอักษร G - 10 4) สำหรับตัวอักษร D -10

สารละลาย: ซอร์สโค้ด– คำนำหน้า ด้วยเหตุนี้ เงื่อนไขของ Fano จึงเป็นไปตามเงื่อนไข - ไม่มีรหัสสามบิตใดที่ขึ้นต้นด้วย 00 (A) หรือ 01 (B) (ในกรณีนี้ เงื่อนไข Fano แบบย้อนกลับไม่เป็นที่พอใจ - รหัส A (00) ตรงกับจุดสิ้นสุด B (100) และรหัส B (01) ตรงกับจุดสิ้นสุด D (101)

ตอนนี้เรามาดูคำตอบกัน ลองลด D ให้เป็น 11 หากรหัสผลลัพธ์ละเมิด สภาพตรง Fano ดังนั้นคุณสมบัติของการถอดรหัสที่ชัดเจนจะถูกละเมิด แต่สิ่งนี้ไม่ได้เกิดขึ้น ไม่มีรหัสอื่นที่ขึ้นต้นด้วย 11 นี่คือ การตัดสินใจที่ถูกต้อง- ลองตรวจสอบตัวเลือกอื่น ๆ

เราไม่ได้พิจารณาตัวเลือกที่ 2 ในทันที - เราพบคำตอบแล้ว ตัวเลือก 3 ละเมิดเงื่อนไขโดยตรงของ Fano - รหัสของตัวอักษร B (101) ขึ้นต้นด้วย 10 ตัวเลือกที่ 4 ยังฝ่าฝืนเงื่อนไขโดยตรงของ Fano เหล่านั้น. คำตอบนั้นชัดเจนไม่มีทางเลือกอื่น

ขอบคุณสำหรับความสนใจของคุณ!




มีคำถามอะไรไหม?

แจ้งการพิมพ์ผิด

ข้อความที่จะส่งถึงบรรณาธิการของเรา: