שינויים

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

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

נוספו 193 בתים, 15:33, 12 בינואר 2019
/* קידוד פולינומי ציקלי */
*קוד נקרא ציקלי אם לכל מילה חוקית <math>(a_{n-1}\ a_{n-2}\ \cdots\ a_1\ a_0)</math> גם המילה ההזזה הציקלית <math>(a_{n-2}\ a_{n-3}\ \cdots\ a_0\ a_{n-1})</math> היא מילה חוקית.
**יהי <math>f(x)=a_{n-1}x^{n-1}+...+a_0</math>
**אזי <math>x\cdot f(x) \equiv a_{n-2}x^{n-1}+...+a_0x+a_{n-1} \mod x^n-1</math>
**כלומר ההזזה הציקלית של <math>f(x)</math> היא השארית של <math>x\cdot f(x)</math> בחלוקה ב<math>x^n-1</math>.
**הוכחה:
***אכן <math>x\cdot f(x)= a_{n-1}x^n+...+a_0x=a_{n-1}(x^n-1) + a_{n-1} + a_{n-2}x^{n-1}+...+a_0x</math>
*משפט: הפולינום <math>g(x)</math> מחלק את <math>x^n-1</math> אם ורק אם הקוד לעיל הפולינומי הינו ציקלי.
**הוכחה:
**ראשית נסמן ב<math>I</math> את אוסף כל המילים החוקיות, כלומר כל הפולינומים מהצורה <math>f(x)g(x)</math> כאשר <math>\deg(f)<k</math>.
***נסמן <math>h(x)=x^k+t(x)</math> ולכן <math>h(x)g(x)=x^kg(x)+t(x)g(x)</math>.
***כעת <math>x^kg(x) = x\cdot x^{k-1}g(x)</math>.
***נחשב את השארית מודולו <math>x^n-1</math> ונקבל ההזזה ציקלית של המילה החוקית <math>x^{k-1}g(x)\in I</math>.
***כיוון שהקוד ציקלי, גם המילה המוזזת הינה חוקית, ולכן <math>x^kg(x)\equiv q(x)g(x) \mod x^n-1</math>.
***נחזור לחלוקה בשארית המקורית, נחשב את השאריות מודולו <math>x^n-1</math> ונקבל: