שאלת מבחן במבוא למדעי המחשב - אוניברסיטת תל אביב 2015 - קידוד
נגדיר קוד זוגיות דו-מימדי "חסר פינה": עבור 9 ביטים של מידע , נוסיף לכל שורה ביט זוגיות () ולכל עמודה ביט זוגיות (). בניגוד לקוד שנלמד בכיתה, כאן אין ביט זוגיות בפינה הימנית התחתונה.
המבנה:
| | | | |
| | | | |
| | | | |
| | | | -- |
מילת קוד מתוארת ע"י , כלומר 15 ביטים.
קוד נקרא קוד אם הוא מספר הביטים במילת קוד, הוא מספר ביטי המידע, ו- הוא המרחק המינימלי בין שתי מילות קוד.
א. קבעו מהם . לקביעת המרחק המינימלי, ניתן להסתמך על הטענה: בקוד זה יש מילת קוד שמרחקה ממילת האפס הוא . הראו מילת קוד במרחק מינימלי ממילת האפס.
ב. הראו מילת קוד במרחק מקסימלי ממילת האפס.
ג. התשדורת הבאה התקבלה לאחר מעבר בערוץ תקשורת רועש:
האם היא נמצאת במרחק 1 ממילת קוד כלשהי? הוכיחו.
ד. תהי קבוצת כל המילים שנמצאות במרחק הקטן או שווה ל-2 ממילת קוד כלשהי. האם הקבוצה כוללת את כל המילים ב-? הסבירו.
המבנה:
| | | | |
| | | | |
| | | | |
| | | | -- |
מילת קוד מתוארת ע"י , כלומר 15 ביטים.
קוד נקרא קוד אם הוא מספר הביטים במילת קוד, הוא מספר ביטי המידע, ו- הוא המרחק המינימלי בין שתי מילות קוד.
א. קבעו מהם . לקביעת המרחק המינימלי, ניתן להסתמך על הטענה: בקוד זה יש מילת קוד שמרחקה ממילת האפס הוא . הראו מילת קוד במרחק מינימלי ממילת האפס.
ב. הראו מילת קוד במרחק מקסימלי ממילת האפס.
ג. התשדורת הבאה התקבלה לאחר מעבר בערוץ תקשורת רועש:
0 0 0 0 0 0 0 1 0 0 0 1 0 0 0האם היא נמצאת במרחק 1 ממילת קוד כלשהי? הוכיחו.
ד. תהי קבוצת כל המילים שנמצאות במרחק הקטן או שווה ל-2 ממילת קוד כלשהי. האם הקבוצה כוללת את כל המילים ב-? הסבירו.
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
אוניברסיטת תל אביבמועד א2015סמסטר ב
★★★★★
קידוד
בסעיף א' חפשו מילת קוד עם מינימום ביטים שונים מאפס. שימו לב שאם משנים ביט מידע אחד, צריך לשנות גם ביט זוגיות של שורה וביט זוגיות של עמודה.
א. , , .
מילת קוד במרחק מינימלי ממילת האפס: נציב ושאר ביטי המידע 0. אז (זוגיות שורה ראשונה) ו- (זוגיות עמודה ראשונה). סה"כ 3 ביטים דולקים, מרחק 3 ממילת האפס.
מילת הקוד:
לא ניתן ליצור מילת קוד חוקית עם פחות מ-3 ביטים דולקים (מלבד מילת האפס): שינוי ביט מידע אחד דורש שינוי ביט זוגיות שורה + ביט זוגיות עמודה = 3 שינויים. ושינוי של ביט זוגיות בלבד יפר את תנאי הזוגיות.
ב. מילת קוד במרחק מקסימלי: נציב את כל 9 ביטי המידע כ-1. אז כל ביטי הזוגיות של השורות הם 1 (3 ביטים בשורה = אי-זוגי) וכל ביטי הזוגיות של העמודות הם 1 (3 ביטים בעמודה = אי-זוגי). סה"כ 15 ביטים דולקים.
מילת הקוד:
ג. התשדורת:
כלומר , ושאר הביטים 0.
נבדוק: אם זו מילת קוד חוקית — שורה 3: (אי-זוגי), ✓. שורות 1,2: תקינות (כל 0). עמודה 2: , ✗. לכן התשדורת אינה מילת קוד.
האם במרחק 1? צריך למצוא מילת קוד שנבדלת בביט אחד. אם נשנה ל-1: נקבל שעמודה 2 תקינה, אבל שורה 4 (שורת העמודות) תהיה — אין ביט זוגיות לשורה זו ("חסר פינה") אז אין בעיה. נבדוק: . שורה 3: , ✓. עמודה 2: , ✓. עמודות 1,3: ✓. שורות 1,2: ✓.
כן, התשדורת במרחק 1 ממילת הקוד
ד. לא. מספר מילות הקוד הוא . כדור ברדיוס 2 סביב כל מילת קוד מכיל מילים. גם אם הכדורים אינם חופפים, סה"כ . למעשה , אז לפי ספירה לא ניתן לשלול. אבל ניתן להראות ישירות: ניקח את המילה שבה רק (שאר 0). זו לא מילת קוד (שורה 1 עם כל ו- מפרה זוגיות). כדי להגיע למילת קוד צריך לשנות (מרחק 1) או לשנות ביט מידע בשורה 1 + ביט עמודה מתאים (מרחק 2) — אבל שינוי ביט מידע + עמודה = שורה מתוקנת אך צריך גם . למעשה אומר שהקוד מתקן שגיאה אחת בלבד, ומרחק 2 ממילת קוד מובטח רק אם . מכיוון ש-, כדורים ברדיוס 2 עלולים לחפוף ויש מילים שלא מכוסות.
מילת קוד במרחק מינימלי ממילת האפס: נציב ושאר ביטי המידע 0. אז (זוגיות שורה ראשונה) ו- (זוגיות עמודה ראשונה). סה"כ 3 ביטים דולקים, מרחק 3 ממילת האפס.
מילת הקוד:
1 0 0 0 0 0 0 0 0 1 0 0 1 0 0לא ניתן ליצור מילת קוד חוקית עם פחות מ-3 ביטים דולקים (מלבד מילת האפס): שינוי ביט מידע אחד דורש שינוי ביט זוגיות שורה + ביט זוגיות עמודה = 3 שינויים. ושינוי של ביט זוגיות בלבד יפר את תנאי הזוגיות.
ב. מילת קוד במרחק מקסימלי: נציב את כל 9 ביטי המידע כ-1. אז כל ביטי הזוגיות של השורות הם 1 (3 ביטים בשורה = אי-זוגי) וכל ביטי הזוגיות של העמודות הם 1 (3 ביטים בעמודה = אי-זוגי). סה"כ 15 ביטים דולקים.
מילת הקוד:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1ג. התשדורת:
0 0 0 0 0 0 0 1 0 0 0 1 0 0 0כלומר , ושאר הביטים 0.
נבדוק: אם זו מילת קוד חוקית — שורה 3: (אי-זוגי), ✓. שורות 1,2: תקינות (כל 0). עמודה 2: , ✗. לכן התשדורת אינה מילת קוד.
האם במרחק 1? צריך למצוא מילת קוד שנבדלת בביט אחד. אם נשנה ל-1: נקבל שעמודה 2 תקינה, אבל שורה 4 (שורת העמודות) תהיה — אין ביט זוגיות לשורה זו ("חסר פינה") אז אין בעיה. נבדוק: . שורה 3: , ✓. עמודה 2: , ✓. עמודות 1,3: ✓. שורות 1,2: ✓.
כן, התשדורת במרחק 1 ממילת הקוד
0 0 0 0 0 0 0 1 0 0 0 1 0 1 0.ד. לא. מספר מילות הקוד הוא . כדור ברדיוס 2 סביב כל מילת קוד מכיל מילים. גם אם הכדורים אינם חופפים, סה"כ . למעשה , אז לפי ספירה לא ניתן לשלול. אבל ניתן להראות ישירות: ניקח את המילה שבה רק (שאר 0). זו לא מילת קוד (שורה 1 עם כל ו- מפרה זוגיות). כדי להגיע למילת קוד צריך לשנות (מרחק 1) או לשנות ביט מידע בשורה 1 + ביט עמודה מתאים (מרחק 2) — אבל שינוי ביט מידע + עמודה = שורה מתוקנת אך צריך גם . למעשה אומר שהקוד מתקן שגיאה אחת בלבד, ומרחק 2 ממילת קוד מובטח רק אם . מכיוון ש-, כדורים ברדיוס 2 עלולים לחפוף ויש מילים שלא מכוסות.