סיבוכיות

סיבוכיות היא מדד למספר המשאבים שמחשב צריך כדי לפתור בעיה.
המשאבים העיקריים הם זמן (כמה זמן לוקח) וזיכרון (כמה מקום בתוכו).
לפעמים בודקים גם כמה מחשבים קטנים עובדים ביחד.

"בעיה" היא קבוצה של שאלות דומות. שאלה בודדת נקראת מופע.
לדוגמה, בעיית הפירוק: למצוא את הגורמים של מספר.
השאלה "למה 15 מתפרק?" היא מופע של הבעיה.

סיבוכיות הזמן מודדת את מספר הצעדים לפי גודל הקלט n.
כדי להכליל משתמשים במודל תיאורטי שנקרא מכונת טיורינג.
משתמשים בסימון אסימפטוטי כדי לומר איך הזמן גדל עם הקלט.

דוגמאות פשוטות: כיסוח דשא הוא ליניארי, כפול שטח היא כפולה זמן.
חיפוש בינארי במילון הוא לוגריתמי, הגדלה יכולה להוסיף רק צעד אחד.

יש גם סיבוכיות קוד. זאת אומרת עד כמה הקוד מורכב.
וסיבוכיות תקשורת בודקת כמה מידע צריך לעבור בין צדדים.

בעיות שקשה לפתור משמשות להצפנה.
ב-RSA מכפילים שני מספרים ראשוניים כדי להצפין הודעה.
כדי לפענח צריך לפרק את המכפלה לגורמים. זה קשה בלי לדעת את הראשוניים.
פונקציות שקל לחשב אך קשה להיפוך בלי מידע נקראות פונקציות מלכודת.

תגובות גולשים

התגובה תפורסם באתר לאחר אישור המערכת

עדיין אין תגובות. היה הראשון להגיב!