16Aug

Kas yra kompiuteriniai algoritmai ir kaip jie veikia?

Jei neatsižvelgiate į matematiką ar programavimą, žodis "algoritmas" gali būti jums graikų kalbos, tačiau jis yra vienas iš pagrindinių dalykų, kurį naudojate skaityti šį straipsnį.Štai greitas paaiškinimas, kas jie yra, ir kaip jie veikia.

Atsakomybės apribojimas: nesu matematikos ar kompiuterių mokslo mokytojas, todėl ne visi mano naudojami terminai yra techniniai. Taip yra todėl, kad bandau paaiškinti viską paprastąja anglų kalba, nes žmonėms matematika nėra visiškai patogi. Tai sakant, yra keletas matematikos, ir tai neišvengiama. Matematikos geeksai, pasistenkite ištaisyti ar geriau paaiškinti komentaruose, bet prašome palikti jį paprastą matematiškai nepasitikėję tarp mūsų.

Image by Ian Ruotsala

Kas yra algoritmas?

Žodis "algoritmas" turi etimologiją, panašią į "algebra", išskyrus tai, kad jis susijęs su pats arabų matematikas al-Khwarizmi( tiesiog įdomus tibetas).Algoritmas tarp mūsų esančių neprogramuotojų yra instrukcijų rinkinys, kuris imasi įvesties, A ir pateikia išvestį B, kuris tam tikru būdu pakeičia duomenis. Algoritmai turi platų programų spektrą.Matematiškai jie gali padėti apskaičiuoti funkcijas iš taškų duomenų rinkinyje, tarp daug daugiau pažengusių dalykų.Nepaisant to, kad jie naudojami programuojant save, jie atlieka pagrindinius vaidmenis tokiose srityse kaip failų suspaudimas ir duomenų šifravimas.

Pagrindinis instrukcijų rinkinys

Tarkime, kad tavo draugas susipažįsta su tavo bakalėjos parduotuvėje ir nukreipi jį į tave. Jūs sakote tokius dalykus kaip "eikite per dešinę pusę", "praeikite žuvų sekciją kairėje" ir "jei pamatysite pieną, tu mane išlaikei". Tokie algoritmai veikia taip. Mes galime naudoti srautų schemą, kad iliustruotume instrukcijas, paremtas kriterijais, kuriuos žinome anksčiau, arba išsiaiškinome proceso metu.

( nuotrauka pavadinta "Icebreaking Routine" EDIT: mandagumo "Trigger" ir "Freewheel")

Nuo START galite nukristi kelią ir priklausomai nuo to, kas atsitiks, atlikite "srautą" iki galutinio rezultato. Diagrama yra vizuali priemonė, kuri suprantamesnė gali būti kompiuterių instrukcijų rinkinys. Panašiai algoritmai taip pat padeda atlikti daugiau matematikos modelių.

diagramos

Naudokime grafiką, kad pademonstruotume įvairius būdus, kaip galėtume duoti nurodymus.

Mes galime išreikšti šią diagramą kaip ryšį tarp visų jo taškų.Kad atkurtume šį vaizdą, mes galime pateikti instrukcijų rinkinį kam nors kitam.

metodas 1

Mes galime atstovauti tai kaip taškų seriją, o informacija turėtų atitikti standartinę diagramos formą ={ (x1, y1),( x2, y2),. ..,( xn, yn)}.

grafikas ={ (0,0),( 3,0),( 3,3),( 5,5),( 7,10),( 8,7),( 9,4),( 10,1))

Gana lengva kiekvieną tašką užrašyti vienas po kito ir prijungti juos prie ankstesnio taško. Tačiau įsivaizduokite grafiką su tūkstančiais taškų arba keliais segmentais, kurie visi vyksta kiekvienu būdu. Tame sąraše būtų daug duomenų, tiesa? Ir tada, prijungti kiekvieną iš jų, po vieną, gali būti skausmas.

metodas 2

Kitas dalykas, kurį mes galime padaryti - tai atspirties taškas, linijos nuolydis tarp jo ir kito taško ir nurodykite, kur tikėtis kito taško, naudodamas standartinę diagramos formą ={ (pradinis taškas), [m1, x1, h1],. .., [mn, xn, hn]}. Čia kintamasis "m" žymi linijos nuolydį, "x" reiškia skaičiavimo kryptį( ar x arba y) ir "h"pasakoja jums, kiek skaičiuoti šia kryptimi. Taip pat galite prisiminti, kad po kiekvieno judesio suplanuokite tašką.

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

Jūs baigsiteJūs galite pamatyti, kad paskutiniai trys šios frazės terminai yra vienodi, todėl mes galime juos sumažinti, tiesiog sakydami "pakartokite tris kartus" tam tikru būdu. Sakykime, kad kada jūs pamatysite kintamąjį "RTai reiškia:

graph ={ (0,0), [0, x, 3], [0, y, 3], [1, x, 2],[2.5, x, 2], [-3, x, 1], [R = 2]}

Ką daryti, jei atskiri taškai iš tiesų nėra svarbūs, ir tik pats grafas? Mes galime sujungti tuos paskutinius tris skyrius taip:

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

Tai truputį sutrumpina dalykus, iš kur jie buvo anksčiau.

metodas 3

pabandykime tai padaryti kitu būdu.

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

Čia mes turime tai gryna algebrine prasme. Dar kartą, jei patys taškai nesvarbūs ir tik grafika, mes galime sujungti tris paskutinius elementus.

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

Dabar koks jūsų pasirinktas būdas priklauso nuo jūsų sugebėjimų.Galbūt jūs puikiai naudojate matematiką ir grafiką, todėl pasirenkate paskutinę parinktį.Galbūt jūs gerai naršate, todėl pasirenkate antrą variantą.Tačiau kompiuterių srityje jūs atliekate daugybę įvairių užduočių, o kompiuterio galimybės iš tikrųjų nesikeičia. Todėl algoritmai yra optimizuoti užduotims, kurias jie baigia.

Kitas svarbus dalykas yra tai, kad kiekvienas metodas remiasi raktu. Kiekvienas instrukcijų rinkinys yra nenaudingas, nebent jūs žinote, ką daryti su jais. Jei nežinote, kad jūs turėtumėte suplanuoti kiekvieną tašką ir sujungti taškus, pirmasis taškų rinkinys nereiškia nieko. Jei nenorite žinoti, kas antrasis metodas reiškia kiekvieną kintamąjį, jūs nežinote, kaip juos taikyti, taip pat kaip ir šifro raktą.Šis raktas taip pat yra neatskiriama algoritmų naudojimo dalis, o dažniausiai tas raktas randamas bendruomenėje arba "standartiniu" būdu.

failų suspaudimas

Kai atsisiunčiate. zip failą, jūs išskiriate turinį, kad galėtumėte naudoti bet kokįyra jo viduje.Šiuo metu dauguma operacinių sistemų gali pasinerti į. zip failus, kaip jie buvo įprasti aplankai, daro viską fone. Mano "Windows 95" aparate prieš dešimtmetį turėjau viską išgauti rankiniu būdu, kol aš negalėjau pamatyti daugiau nei failų pavadinimai. Taip yra todėl, kad diske laikomas. zip failas nebuvo naudojamas. Pagalvokite apie ištraukiamą sofą.Jei norite jį naudoti kaip lovą, turite pašalinti pagalvę ir ją atsukti, kad užtruks daugiau vietos. Kai jums to nereikia arba norite jį perkelti, galite jį sulankstyti.

suspaudimo algoritmai yra koreguojami ir optimizuojami konkrečiai tų failų tipams, kuriems jie skirti. Pavyzdžiui, garso formatais naudojamas kitoks būdas saugoti duomenis, kurie, dekoduojami garso kodeku, duos garso failą, panašų į pradinę bangos formą.Norėdami gauti daugiau informacijos apie šiuos skirtumus, peržiūrėkite ankstesnį straipsnį, kokie skirtumai tarp visų šių garso formatų?Lossless garso formatais ir. zip failais yra vienas bendras dalykas: jie abu pradinius duomenis pateikia tikslia forma po dekompresijos proceso. Lossy garso kodekai naudoja kitas priemones, skirtas taupyti disko vietos, pvz., Apjuosti dažnius, kurių negalima išgirsti žmogaus ausyse, ir sugriežtinti bangų formą skirsniuose, kad būtų galima atsikratyti kai kurių detalių.Galų gale, nors mes galbūt negalėsime išgirsti skirtumo tarp MP3 ir kompaktinių plokštelių, be abejo, trūksta pirmosios informacijos.

duomenų šifravimas

algoritmai taip pat naudojami saugant duomenis arba ryšių linijas. Užuot saugoję duomenis, kad būtų naudojama mažiau vietos diske, ji saugoma tokiu būdu, kurio negalima aptikti kitų programų.Jei kas nors pavogs kietąjį diską ir pradės jį nuskaityti, jis gali surinkti duomenis netgi ištrinant failus, nes pats jų duomenys vis dar yra, net jei peradresavimo vieta jai pasibaigė.Kai duomenys yra šifruojami, tai, kas yra saugoma, atrodo ne taip, kaip ji yra. Paprastai ji atrodo atsitiktinai, tarsi susikaupė laikas. Taip pat galite saugoti duomenis ir rodyti jį kaip kitą failo tipą.Vaizdo failai ir muzikos failai yra naudingi, nes, pavyzdžiui, jie gali būti gana dideli. Visa tai daroma naudojant matematinius algoritmus, kurie imasi tam tikros įvesties ir konvertuoja jį į kitą, labai specifinį produkcijos tipą.Daugiau informacijos apie tai, kaip veikia šifravimas, žr. HTG Paaiškina, kas yra šifravimas ir kaip jis veikia?

algoritmai yra matematiniai įrankiai, kurie teikia įvairius dalykus informacinių technologijų srityje. Jie stengiasi nuosekliai pateikti kelią tarp pradinio taško ir pabaigos taško ir pateikti instrukcijas, kaip jį sekti. Sužinok daugiau nei tai, ką paryškinome? Pasidalykite savo paaiškinimais komentaruose!