lt.phhsnews.com


lt.phhsnews.com / Kas yra kompiuteriniai algoritmai ir kaip jie veikia?

Kas yra kompiuteriniai algoritmai ir kaip jie veikia?


Išskyrus atvejus, kai esate matematikos ar programavimo, žodis "algoritmas" gali būti jums graikų kalbos, tačiau tai vienas iš sudėtinių dalių visko, ką naudojate perskaityti šį straipsnį. Štai greitas paaiškinimas, kas jie yra, ir kaip jie veikia.

Atsakomybės apribojimas: nesu matematikos ar kompiuterių mokslo mokytoja, todėl ne visi mano vartojami 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 geeks, pasistenkite, kad komentarai būtų teisingi ar geriau paaiškinti, tačiau prašome, kad jis būtų paprastas matematiškai nesusipratimų tarp mūsų.

Image by Ian Ruotsala

Kas yra algoritmas?

Žodis " algoritmas "turi etimologiją, panašią į" algebra ", išskyrus tai, kad tai yra 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 vaidina svarbų vaidmenį tokiose situacijose kaip failų suspaudimas ir duomenų šifravimas.

Pagrindinis instrukcijų rinkinys

Tarkime, kad jūsų draugas susitinka su jūsų parduotuvių parduotuvėje ir nukreipiate jį link tu. 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.

(vaizdas pavadintas "Icebreaking Routine" EDIT: mandagumo "Trigger" ir "Freewheel")

"START", jūs turėtumėte naudoti "srautinę schemą", kad būtų iliustruojamos instrukcijos, pagrįstos kriterijais, kuriuos žinome anksčiau laiko. eikite į kelią ir, priklausomai nuo to, kas nutinka, sekite "srautą" į galutinį rezultatą. Diagrama yra vizuali priemonė, kuri suprantamesnė gali būti kompiuterių instrukcijų rinkinys. Be to, algoritmai padeda tai padaryti ir su daugiau matematikos modelių.

Grafikai

Naudodamiesi grafiku, parodykite įvairius būdus, kaip galėtume duoti nurodymus.

Šią diagramą galime išreikšti kaip ryšį tarp visų jo taškai. Norint atkurti šį vaizdą, mes galime pateikti instrukcijų rinkinį kažkam kitam.

1 metodas

Mes galime pateikti tai kaip taškų seriją, o informacija atitiks standartinę formą graph = {(x1 , y1), (x2, y2), ..., (xn, yn)).

graph = {(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 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? Kitas dalykas, kurį mes galime padaryti, - tai atspirties taškas, linijos nuolydis tarp jo ir kito taško, o tai reiškia, kad kiekvienas iš jų gali būti skausmas.

2 metodas

nurodykite, kur tikėtis kito taško, naudodamas standartinę diagramos formą = {(pradinis taškas), [m1, x1, h1], ..., [mn, xn, hn]}. Čia kintamasis "m" reiškia nuolydį linija "x" žymi kryptį skaičiuoti (ar x arba y), o "h" nurodo, kiek skaičių reikia skaičiuoti nurodytoje kryptyje. Taip pat galite prisiminti, kad po kiekvieno judėjimo taškas būtų žymimas.

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 pateksite į tą pačią diagramą. Galite matyti, kad paskutiniai trys šios frazės terminai yra vienodi, todėl mes galime Galite tai padaryti:

graph = {(0), jei norite pamatyti kintamąjį "R", tai reiškia pakartoti paskutinį dalyką. , 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 pati schema? Galime sustiprinti tuos paskutinius tris skyrius:

grafas = {(0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2,5, x, 2], [-3, x, 3]}

Trumpai sutrumpina tai, kur jie buvo anksčiau.

3 metodas

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, kurį metodą pasirinksite 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, dažnai šis raktas randamas bendruomenėje arba naudojant "standartinį".

Failų suspaudimas

Atsisiunčiant .zip failą, turinys išgaunamas taip, kad galite naudoti viską, kas 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į pakartoti.

Suspaudimo algoritmai pritaikomi ir optimizuojami konkrečiai tų failų tipams, kuriems jos yra nukreiptos. 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 atsikratytų kai kurių detalių. Galiausiai, nors mes galbūt negalime išgirsti skirtumo tarp MP3 ir kompaktinių plokštelių, pirmiausia tenka informacijos deficitas.

Data Encryption

Algoritmai taip pat naudojami saugant duomenis ar ryšius linijos. 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, skaitykite 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!


"Nano" pradedančiųjų vadovas, "Linux" komandų eilutės teksto redaktorius

Naujas į Linux komandų eilutę? Pasipiktinę visi kiti išplėstiniai teksto redaktoriai? "How-To Geek" nugabeno į šį vadovėlį į "Nano", paprastą teksto redaktorių, kuris yra labai naujokas. Naudodamiesi komandų eilute, "Linux" naujokus dažnai atleidžia kiti, labiau pažengę teksto redaktoriai. kaip vim ir emacs.

(how-to)

Kaip rankiniu būdu redaguoti dešiniuoju pelės klavišu esantį meniu sistemoje "Windows"

Kaip rankiniu būdu redaguoti dešiniuoju pelės klavišu esantį meniu sistemoje "Windows"

Paskutinį kartą spustelėjus dešiniuoju pelės mygtuku ant failo, man erzina tai, kad kontekstinio meniu įkelti reikėjo tik dvi sekundes. Kodėl? Na, nes mano kompiuteryje įdiegiau tiek daug skirtingų programų, kad keletas jų prisidėjo prie mano dešiniuoju pelės klavišo kontekstinio meniu automatiškai!Kai kurios progr

(How-to)