אלגוריתם אוקלידס – הבדלי גרסאות
תוכן שנמחק תוכן שנוסף
איש הסילונים (שיחה | תרומות) |
קישור פנימי והמרת חלק מהכיתוב המתמטי ל-LaTeX. |
||
שורה 6:
==רקע==
המחלק המשותף המקסימלי של מספרים, המסומן
לדוגמה, המחלק המשותף המקסימלי של 36 ו-24 הוא 12, מאחר שהמספר מחלק את שניהם ואין מספר גדול יותר בעל תכונה זאת.
שורה 44:
==יעילות==
מבחינת [[סיבוכיות]] [[חישוביות|חישובית]], האלגוריתם [[אלגוריתם יעיל|יעיל]]. מספר הפעולות הנדרשות לביצוע אינו עולה על <math>\ \log_{\varphi}a</math> (<math>\ \varphi</math> הוא [[יחס הזהב]]). על כן
המקרה הגרוע ביותר (worst case) הוא כאשר מדובר בשני [[מספרי פיבונאצ'י]] עוקבים; זאת, כיוון שככל שהמנה המתקבלת בפעולות החילוק קטנה יותר, המספר קָטֶן פחות, ויש צורך ביותר פעולות. במספרי פיבונאצ'י כל המנות הן 1, ועל כן התהליך הוא הארוך ביותר. תכונה זו נתגלתה על ידי [[גבריאל לאמה]].
שורה 51:
אחת התכונות החשובות של המחלק המשותף המקסימלי היא שניתן להציג אותו בצורה הבאה: <math>(A,B)=mA+nB</math>, כאשר m,n [[מספר שלם|שלמים]].
ניתן לחשב את m,n בעזרת אלגוריתם אוקלידס בעזרת התכונה שאם כל פעם השתמשנו ב-<math>a=c+qb</math>, אז <math>c=a-qb</math>. לפיכך, אם אנחנו יודעים בשלב מסוים איך להציג את שני המספרים <math>a</math> ו-<math>b</math> בצורה <math>mA+nB</math> (ההתחלה פשוטה: <math>n=0</math> ,<math>m=1</math>,
לדוגמה, נמצא בדוגמה לעיל את ההצגה של 10 כ-<math>100n+230m</math>:
*<math>230=0\cdot100+1\cdot230</math>
*<math>100=1\cdot100+0\cdot230</math>
*<math>30=230-2\cdot100=-2\cdot100+1\cdot230</math>
*<math>10=100-3\cdot30=100-3\cdot(-2\cdot100+1\cdot230)=7\cdot100-3\cdot230</math>
לפיכך: <math>n=7, m=-3</math>.
מידת סיבוכיות האלגוריתם המורחב היא מאותו סדר גודל של הרגיל, מאחר שאין צורך לבצע איטרציות נוספות אלא רק חישובים בסיסיים.
|