שינויים

קפיצה אל: ניווט, חיפוש

מבנים אלגבריים למדעי המחשב - ארז שיינר

נוספו 2,240 בתים, 20:34, 18 בדצמבר 2017
/* הרצאה 10 קידוד; פרק 8 מהספר */
===הרצאה 10 קידוד; פרק 8 מ[http://abstract.ups.edu/aata/ הספר]===
 
*קוד ISBN בעל 10 ספרות, כאשר הספרה האחרונה היא ספרת ביקורת.
*הספרות שייכות לחבורה <math>\mathbb{Z}_{11}</math>, כאשר 9 הספרות הראשונות הן 0-9 והאחרונה יכולה להיות גם X.
*קוד תקין מקיים את הנוסחא <math>10x_1+9x_2+...+x_{10}=0</math> (שימו לב שמדובר בפעולות מודולו 11).
*לכן חישוב ספרת הביקורת הוא <math>x_{10}=-\left(10x_1+...+2x_2\right)</math>.
*אם ספרה אחת בלבד מהקוד תשתנה בטעות, הקוד בוודאות לא יהיה תקין.
**אם נחליף את <math>x_i</math> בספרה <math>y_i</math> על מנת שהקוד החדש יהיה תקין צריך ש <math>a_i(y_i-x_i)=0</math>, אבל <math>a_i\neq 0</math> ו<math>\mathbb{Z}_{11}</math> הוא שדה.
*אם נחליף במיקום של זוג ספרות כלשהן נקבל קוד בלתי תקין.
**<math>a_ix_i+a_jx_j-a_ix_j-a_jx_i=(a_i-a_j)(x_i-x_j)\neq 0</math>.
*שימו לב שקוד זה מוגבל במספר הספרות, ואכן כשהוסיפו ספרות שינו אותו באופן דומה במידה מסוימת לתעודת הזהות שנלמד למטה.
 
 
*כעת עבור ספרת הביקורת של תעודת הזהות אנו לא מרשים שימוש בספרה X ולכן עובדים ב<math>\mathbb{Z}_{10}</math>.
*הבעייה - זה אינו שדה ויש מחלקי אפס. למשל <math>5\cdot 0 = 5\cdot 2</math>, לכן הקוד לעיל לא יזהה בהכרח החלפת ספרה.
*תאור מילולי של חישוב ספרת ביקורת (אלגוריתם Luhn):
**לכל ספרה בתעודת הזהות ניתן משקל - 2 עבור הספרה הימנית ביותר (שאינה ספרת הביקורת) 1 עבור הבאה, וכך הלאה בסירוגין.
**נכפיל כל ספרה במשקל שלה, אם הכפלנו ספרה ב2 וקיבלנו מספר בן שתי ספרות - נסכום את הספרות.
**נסכום את כל התוצאות הללו.
**המספר הקטן ביותר שנוסיף לסכום לעיל על מנת להשלים אותו לכפולה שלימה של 10, הוא ספרת הביקורת.
 
קידוד, ספרת ביקורת של תעודת זהות, קוד לינארי, קוד המינג.
checksum בפרוטוקולי IP, TCP, UDP.
 
===הרצאה 11 חוג הפולינומים; פרקים 16,17 מ[http://abstract.ups.edu/aata/ הספר]===