דף הבית » איך ל » מה הם אלגוריתמים מחשב, וכיצד הם עובדים?

    מה הם אלגוריתמים מחשב, וכיצד הם עובדים?

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

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

    תמונה על ידי איאן רוטסלה

    מהו אלגוריתם?

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

    קבוצה בסיסית של הוראות

    נניח שהחבר שלך פוגש אותך במכולת ואתה מוביל אותו אליך. אתה אומר דברים כמו "בוא דרך הדלת הימנית", "עביר את הקטע של הדגים משמאל", ו"אם אתה רואה את המחלבה, עברת אותי." אלגוריתמים עובדים ככה. אנו יכולים להשתמש בתרשים זרימה כדי להמחיש את ההנחיות בהתאם לקריטריונים שאנו מכירים מראש או לברר במהלך התהליך.

    (תמונה בשם "Icebreaking שגרתי" עריכה: באדיבות טריגר ו Freewheel)

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

    גרפים

    נשתמש בגרף כדי להמחיש את הדרכים השונות שאנו יכולים לתת להן הוראות.

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

    שיטה 1

    אנו יכולים לייצג את זה כסדרה של נקודות, והמידע יעקוב אחר הצורה הסטנדרטית של גרף = (x1, y1), (x2, y2), ... (, xn, yn.

    גרף = (0,0), (3,0), (3,3), (5,5), (7,10), (8,7), (9,4), (10,1)

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

    שיטה 2

    דבר נוסף שאנו יכולים לעשות הוא לתת נקודת התחלה, את השיפוע של הקו בינה לבין הנקודה הבאה, ולהראות היכן לצפות לנקודה הבאה באמצעות הצורה הרגילה של גרף = (נקודת התחלה, [m1, x1, h1 ], ... [mn, xn, hn] כאן, המשתנה 'm' מייצג את שיפוע הקו, 'x' מייצג את הכיוון לספור (בין אם x או y) ו- h אומר לך כיצד רבים לספור בכיוון האמור, אתה יכול גם לזכור לתכנן נקודה אחרי כל תנועה.

    (0, x, 3], [1, x, 2], [2, x, 2], [0, y, 3] [-3, x, 1], [-3, x, 1]

    בסופו של דבר תמצא אותו תרשים. אתה יכול לראות את שלושת המונחים האחרונים בביטוי זה זהים, אז נוכל אולי לקצץ את זה רק על ידי אומר "לחזור על זה שלוש פעמים" בדרך כלשהי. נניח כי בכל פעם שאתה רואה את המשתנה 'R' מופיע, זה אומר לחזור על הדבר האחרון. אנחנו יכולים לעשות את זה:

    (0, x, 3], [1, x, 2], [2, x, 2], [0, y, 3] [R = 2]

    מה אם נקודות הפרט לא ממש משנה, ורק הגרף עצמו עושה? אנחנו יכולים לאחד את שלושת הסעיפים האחרונים כך:

    (0, x, 3], [1, x, 2], [2, x, 2], [0, x, 3]

    זה מקצר את הדברים קצת מהמקום שבו היו לפני.

    שיטה 3

    בואו ננסה לעשות זאת בדרך אחרת.

    y = 0, 0≤x≤3
    x = 0, 0≤y≤3
    y = x, 3≤x≤5
    y = 2.5x-7.5, 5≤x≤7
    y = -3x + 29, 7xx8
    y = -3x + 29, 8≤x≤9
    y = -3x + 29, 9≤x10

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

    y = 0, 0≤x≤3
    x = 0, 0≤y≤3
    y = x, 3≤x≤5
    y = 2.5x-7.5, 5≤x≤7
    y = -3x + 29, 7≤x10

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

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

    דחיסת קבצים

    כאשר אתה מוריד קובץ .zip, אתה מחלץ את התוכן כך שתוכל להשתמש בכל מה שבתוכו. כיום, רוב מערכות ההפעלה יכול לצלול לתוך קבצי zip כאילו הם היו תיקיות רגיל, עושה הכל ברקע. על מכונת Windows 95 שלי לפני למעלה מעשור, הייתי צריך לחלץ את הכל ידנית לפני שיכולתי לראות משהו יותר מאשר את שמות הקבצים בפנים. זה בגלל מה מאוחסן על הדיסק כקובץ. Zip לא היה בצורת שמיש. תחשוב על ספה מושכת. כאשר אתה רוצה להשתמש בו כמו מיטה, אתה צריך להסיר את כריות ו לפרוש אותו, אשר תופס יותר מקום. כאשר אתה לא צריך את זה, או שאתה רוצה להעביר אותו, אתה יכול לקפל אותו בחזרה.

    אלגוריתמי דחיסה מותאמים וממוטבים במיוחד עבור סוגי הקבצים שאליהם הם מכוונים. פורמטים של אודיו, לדוגמה, כל אחד מהם משתמש בדרך אחרת לאחסון נתונים, כאשר מפוענח על ידי codec אודיו, ייתן קובץ קול דומה צורת הגל המקורי. לקבלת מידע נוסף על הבדלים אלה, לבדוק את המאמר הקודם שלנו, מה הם ההבדלים בין כל פורמטי האודיו? פורמטי שמע ללא אובדן נתונים. קבצי zip יש דבר אחד במשותף: שניהם מניבים את הנתונים המקוריים בצורה המדויקת שלה לאחר תהליך של לחץ לחץ. רכיבי codec אודיו מאבדים להשתמש באמצעים אחרים כדי לחסוך מקום בדיסק, כגון תדרים זמירה שאינם מסוגלים להישמע על ידי אוזניים אדם להחליק את waveform בקטעים להיפטר פרט כלשהו. בסופו של דבר, בעוד שאנחנו לא יכולים באמת לשמוע את ההבדל בין MP3 ו CD מסלול, יש בהחלט גירעון של מידע לשעבר.

    הצפנת מידע

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


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