16Aug

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

click fraud protection

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

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

תמונה מאת Ian Ruotsala

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

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

instagram viewer

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

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

( תמונה בשם "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, 0, 0 [null, x, 3], [0, y, 3], [[0, x, 3], [1, x, 2], [2.5, x, 2], [-3, x, 1], [-3, x, 1], [-3, x, 1]}

תסיימו עםאותו גרף, ניתן לראות כי שלושת המונחים האחרונים בביטוי זה זהים, כך שנוכל לקצץ את זה רק על ידי אומר "לחזור על זה שלוש פעמים" בדרך כלשהי, נניח כי בכל פעם שאתה רואה את המשתנה 'R'(, 0, 0, 0, 0, x, 3], [0, y, 3], [0, x, 2][2.5, x, 2], [-3, x, 1], [R = 2]}

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

graph = [0,0], [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 3]}

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

שיטה 3

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

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

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

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≤x≤10

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

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

_ דחיסת קבצים

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

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

הצפנת נתונים

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

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