שינויים

משתמש:איתמר שטיין/הסבר הופכי

נוספו 1,053 בתים, 18:02, 12 ביולי 2012
/* כמה מושגים בתורת המספרים */
כאשר אנו מבצעים חישובים בשדה <math>\mathbb{Z}_p</math> (נזכור ש <math>p</math> חייב להיות ראשוני), אנו נדרשים לפעמים לחשב הופכי לאיבר מסוים בשדה.
שיטה אחת לבצע זאת היא ע"י ניחושמעבר על כל האפשרויות,
אם <math>a\in \mathbb{Z}_p</math> אז יש <math>p</math> איברים שיכולים להיות הופכי: <math>\{0,1,\ldots,p-1\}</math>
ההגדרה הזאת בעייתית כאשר <math>a=b=0</math> במצב זה אומרים ש <math>gcd(0,0)=0</math>.
נשים לב שאם <math>p</math> מספר ראשוני ו <math>1\geq leq a\geq leq p-1</math> אז <math>gcd(a,p)=1</math>
<math>(na+mp)mod~p = 1mod~p</math>
שהופך ל <math>(na)mod~p = 1</math>
לכן <math>n~mod~p</math> הוא הפכי הופכי מתאים ל <math>a</math>.
כל זה טוב ויפה, אבל איך מוצאים את <math>n</math>?
 
== חישוב ההופכי ==
* נתחיל מהמקרה <math>a,b>0</math>
נניח ש <math>b>a</math>, נסמן <math>r_1=b \quad r_2 = a</math>.
נמשיך כך עד שנגיע לשלב <math>k</math> שבו <math>r_k=1</math>.
 
(היות ו <math>gcd(a,b)=1</math> מובטח לנו שנגיע מתישהוא ל <math>1</math>)
עד כאן החלק הקל,
עכשיו צריך להתחיל חישוב אחורה
 
 
השלב האחרון שהגענו אליו היה
 
<math>r_{k-2}-q_{k-1}r_{k-1} = r_k = 1</math>
שהופך ל:
<math>(1+q_{k-1}q_{k-2})r_{k-2}-q_{k-1}r_{k-3} = 1</math> <math>(\ast)</math>
 
אבל שוב, בשלב קודם ראינו ש
<math>r_{k-4} - q_{k-3}r_{k-3} =r_{k-2}</math>
 ואפשר להציב את התוצאה <math>r_{k-4} - q_{k-3}r_{k-3}</math> ב <math>r_{k-2}</math>
שמופיע בביטוי <math>(\ast)</math> ולקבל ביטוי מהצורה
<math>xr_{k-4}+yr_{k-3}=1</math>
עבור <math>x,y</math> כלשהם
וכן הלאה עד שנגיע לביטוי מהצורה
* אם <math>a,b<0</math> או <math>a<0</math> אז מוצאים <math>n',m'</math> מתאימים עבור <math>|a|,|b|</math>בשיטה שתוארה קודם
ואז <math>(-n)a+(-m)b=n'|a|+m'|b|=1</math> אז פשוט ואז  אם <math>a<0</math> לוקחים את <math>n=-n,'</math> (אחרת <math>n=n'</math>) אם <math>b<0</math> לוקחים <math>m=-m'</math> (אחרת <math>m=m'</math>)  * אם <math>a=0</math> הסיכוי היחיד ש <math>gcd(a,b)=1</math> זה אם <math>b=1</math> או <math>b=-1</math> וזה מקרה פשוט כנ"ל אם <math>b=0</math>.
== דוגמא ==
מצא את ההפכי ההופכי של <math>27</math> ב <math>\mathbb{Z}_{101}</math>. נחשב <math>101-3\cdot 27=20</math> <math>27-20=7</math> <math>20-2\cdot7 = 6</math> <math>7-6=1</math> עכשיו נחשב אחורה <math>3\cdot 7-20=1 \Leftarrow 7-(20-2\cdot 7)=1</math> <math>3\cdot 27 - 4\cdot 20=1 \Leftarrow 3 \cdot (27-20)-20=1</math> <math>15\cdot 27 - 4\cdot 101=1 \Leftarrow 3\cdot 27 - 4\cdot(101-3\cdot 27)</math>. לכן ההופכי של 27 ב <math>\mathbb{Z}_{101}</math>הוא 15.