Ce sunt algoritmii computerelor și cum funcționează acestea?
Dacă nu sunteți în matematică sau programare, cuvântul "algoritm" ar putea fi grec pentru dvs., dar este unul dintre elementele de bază ale tuturor lucrurilor pe care le utilizați pentru a citi acest articol. Iată o explicație rapidă a ceea ce sunt și a felului în care funcționează.
Disclaimer: Nu sunt un profesor de matematică sau informatică, deci nu toți termenii pe care îi folosesc sunt tehnici. Asta pentru că încerc să explic totul în engleză, pentru că oamenii nu sunt destul de confortabil cu matematica. Acestea fiind spuse, există unele matematică implicate, și asta e inevitabil. Matei geeks, nu ezitați să corectați sau să explicați mai bine în comentariile, dar vă rog, păstrați-l simplu pentru matematically disinclined among us.
Imagine de Ian Ruotsala
Ce este un algoritm?
Cuvântul "algoritm" are o etimologie similară cu cea a "algebrei", cu excepția faptului că se referă la matematicianul arab, el-Khwarizmi (doar un interesant tidbit). Un algoritm, pentru non-programatorii dintre noi, este un set de instrucțiuni care iau o intrare, A, și furnizează o ieșire, B, care schimbă datele implicate într-un fel. Algoritmii au o mare varietate de aplicații. În matematică, ele pot ajuta la calcularea funcțiilor din puncte într-un set de date, printre lucruri mult mai avansate. În afară de utilizarea lor în programarea însăși, ele joacă roluri importante în lucruri precum comprimarea fișierelor și criptarea datelor.
Un set de instrucțiuni de bază
Să spunem că prietenul tău se întâlnește cu tine într-un magazin alimentar și că îl îndrumi spre tine. Spui lucruri precum "intrați prin ușile din partea dreaptă", "treceți secțiunea de pește din stânga" și "dacă vedeți laptele, ați trecut de mine". Algoritmii funcționează astfel. Putem folosi o diagramă pentru a ilustra instrucțiunile pe baza unor criterii pe care le cunoaștem înainte sau în timpul procesului.
(imagine intitulată "Răsturnarea de gheață" EDIT: amabilitatea lui Trigger și Freewheel)
De la START, te-ai îndrepta în jos pe cale și, în funcție de ceea ce se întâmplă, urmați "fluxul" către un rezultat final. Diagramele sunt instrumente vizuale care pot reprezenta mai ușor un set de instrucțiuni utilizate de computere. În mod similar, algoritmii ajută la fel cu mai multe modele bazate pe matematică.
Grafice
Să folosim un grafic pentru a ilustra diferitele moduri în care putem da indicații.
Putem exprima acest grafic ca o conexiune între toate punctele sale. Pentru a reproduce această imagine, putem da un set de instrucțiuni altcuiva.
Metoda 1
Putem reprezenta aceasta ca o serie de puncte, iar informația va urma forma standard a lui graph = (x1, y1), (x2, y2), ..., (xn, yn).
(3), (5, 5), (7,10), (8,7), (9,4), (10,1)
Este destul de ușor să complot fiecare punct, unul după altul, și să le conectați la punctul anterior. Cu toate acestea, imaginați-vă un grafic cu o mie de puncte sau mai multe segmente, toate mergând în fiecare direcție. Lista asta ar avea multe date, nu? Și apoi trebuie să vă conectați fiecare, unul câte unul, poate fi o durere.
Metoda 2
Un alt lucru pe care îl putem face este să dăm un punct de plecare, panta liniei dintre el și punctul următor și să indicați unde să așteptăm următorul punct folosind forma standard a lui graph = (punct de pornire), [m1, x1, h1 ], ..., [mn, xn, hn] Aici variabila "m" reprezinta panta liniei, "x" reprezinta directia de numarare (fie x sau y), iar "h" mulți care pot conta în direcția menționată. De asemenea, vă puteți aminti să complotați un punct după fiecare mișcare.
(1, x, 2), [2, x, 2], [3, x, 1], [0, [-3, x, 1], [-3, x, 1]
Veți ajunge la același grafic. Puteți observa că ultimii trei termeni din această expresie sunt aceiași, astfel încât este posibil să putem tăia acest lucru doar prin a spune "repetați de trei ori" într-un fel. Să spunem că oricând veți vedea variabila "R", înseamnă să repetați ultimul lucru. Noi putem sa facem asta:
(1, x, 2), [2, x, 2], [3, x, 1], [0, [R = 2]
Ce se întâmplă dacă punctele individuale nu contează, și numai graficul însuși? Putem consolida ultimele trei secțiuni, cum ar fi:
(1, x, 2), [3, x, 3], [1, x, 2], [
Ea scurtează lucrurile puțin de locul unde au fost înainte.
Metoda 3
Să încercăm să facem acest lucru într-un alt mod.
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≤8
y = -3x + 29, 8≤x≤9
y = -3x + 29, 9≤x≤10
Aici o avem în termeni algebrici pur. Încă o dată, dacă punctele în sine nu contează și numai graficul face, putem consolida ultimele trei elemente.
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
Acum, ce metodă alegeți depinde de abilitățile tale. Poate că sunteți minunat cu matematica și graficul, deci alegeți ultima opțiune. Poate că ești bun la navigare, deci alegeți a doua opțiune. În domeniul computerelor, totuși, faci multe sarcini diferite, iar abilitatea computerului nu se schimbă cu adevărat. Prin urmare, algoritmii sunt optimizați pentru sarcinile pe care le finalizează.
Un alt aspect important este acela că fiecare metodă se bazează pe o cheie. Fiecare set de instrucțiuni este inutil dacă nu știți ce să faceți cu ei. Dacă nu știți că ar trebui să complotați fiecare punct și să conectați punctele, primul set de puncte nu înseamnă nimic. Dacă nu știți ce înseamnă fiecare variabilă în a doua metodă, nu veți ști cum să le aplicați, la fel ca cheia unui cifr. Această cheie este, de asemenea, o parte integrantă a utilizării algoritmilor și, adesea, acea cheie se găsește în comunitate sau prin intermediul unui "standard".
Comprimarea fișierelor
Când descărcați un fișier .zip, extrageți conținutul, astfel încât să puteți utiliza tot ce se află în el. În zilele noastre, majoritatea sistemelor de operare se pot scufunda în fișiere .zip ca și cum ar fi folderele normale, făcând totul în fundal. Pe mașina mea Windows 95 de peste un deceniu în urmă, trebuia să extrag totul manual înainte de a putea vedea ceva mai mult decât numele de fișiere din interior. Asta pentru că ceea ce a fost stocat pe disc ca fișier .zip nu era într-o formă utilizabilă. Gândește-te la o canapea retrasă. Când doriți să o utilizați ca un pat, trebuie să îndepărtați pernele și să le deschideți, ceea ce necesită mai mult spațiu. Când nu aveți nevoie de ea sau doriți să o transportați, o puteți împăși înapoi.
Compresie algoritmii sunt ajustate și optimizate în mod specific pentru tipurile de fișiere cărora li se adresează. Formatele audio, de exemplu, utilizează fiecare un mod diferit de a stoca date care, atunci când sunt decodificate de codecul audio, vor da un fișier de sunet similar cu forma de undă originală. Pentru mai multe informații despre aceste diferențe, consultați articolul nostru anterior, Care sunt diferențele dintre toate formatele audio? Formatele audio fără pierderi și fișierele .zip au un lucru în comun: ambele oferă datele originale în forma exactă după procesul de decompresie. Codecurile audio pierdute folosesc alte mijloace pentru a economisi spațiu pe disc, cum ar fi frecvențele de tăiere care nu pot fi auzite de urechile umane și netezirea formei de undă în secțiuni pentru a scăpa de unele detalii. În cele din urmă, deși este posibil să nu putem auzi cu adevărat diferența dintre o piesă MP3 și o piesă de CD, există cu siguranță un deficit de informații în fosta.
Criptarea datelor
Algoritmii sunt de asemenea utilizați la securizarea liniilor de date sau de comunicații. În loc să stocheze date astfel încât să utilizeze mai puțin spațiu pe disc, acestea sunt stocate într-o manieră nedetectabilă de alte programe. Dacă cineva vă fură hard disk-ul și începe să-l scaneze, poate prelua date chiar și atunci când ștergeți fișiere, deoarece datele în sine sunt încă acolo, chiar dacă locația de redirecționare a acesteia a dispărut. Atunci când datele sunt criptate, ceea ce este stocat nu arata ca ceea ce este. De obicei, pare aleatoriu, ca și cum fragmentarea ar fi trebuit să crească în timp. Puteți, de asemenea, să stocați date și să le faceți să apară ca un alt tip de fișier. Fișierele imagine și fișierele muzicale sunt bune pentru acest lucru, deoarece acestea pot fi destul de mari fără a atrage suspiciuni, de exemplu. Toate acestea se fac folosind algoritmi matematici, care iau un fel de intrare și îl convertesc într-un alt tip de ieșire foarte specific. Pentru mai multe informații despre modul în care funcționează criptarea, consultați HTG Explică: Ce este criptarea și cum funcționează?
Algoritmii sunt instrumente matematice care oferă o varietate de utilizări în domeniul informaticii. Ei lucrează pentru a oferi o cale între un punct de pornire și un punct final în mod consecvent și oferă instrucțiunile de urmat. Știți mai mult decât ceea ce am subliniat? Distribuiți explicațiile în comentariile dvs.!