16Aug

Čo sú počítačové algoritmy a ako fungujú?

Pokiaľ sa nenachádzate v matematike alebo programovaní, slovo "algoritmus" môže byť pre vás gréčtina, ale je to jeden zo stavebných kameňov všetkého, čo používate na prečítanie tohto článku. Tu je rýchle vysvetlenie toho, aké sú a ako fungujú.

Odmietnutie zodpovednosti: Nie som učiteľ matematiky alebo informatiky, takže nie všetky termíny, ktoré používam, sú technické.Je to preto, že sa snažím vysvetliť všetko v jednoduchej angličtine, lebo ľudia sa s matematikou veľmi nepociťujú.Hovorí sa, že matematika je zapletená a to je nevyhnutné.Math geeks, neváhajte opraviť alebo lepšie vysvetliť v komentároch, ale prosím, držte to jednoduché pre matematicky neochvejné medzi nami.

Obrázok Ian Ruotsala

Čo je to algoritmus?

Slovo "algoritmus" má etymológiu podobnú "algebru", okrem toho, že sa vzťahuje na samotného arabského matematika, al-Khwarizmiho( len zaujímavý tidbit).Algoritmus pre neprogramujúcich medzi nami je súbor inštrukcií, ktoré majú vstup A, a poskytujú výstup, B, ktorý nejakým spôsobom zmení dáta. Algoritmy majú širokú škálu aplikácií.V matematike môžu pomôcť vypočítať funkcie z bodov v súbore údajov, medzi oveľa pokročilejšie veci. Okrem ich použitia v samotnom programovaní zohrávajú dôležité úlohy v oblasti kompresie súborov a šifrovania dát.

Základná sada pokynov

Povedzme, že váš priateľ sa s vami stretne v obchode s potravinami a budete ho sprevádzať smerom k vám. Povedali ste veci ako "príďte cez pravej strane dverí", "prejdite ryteckú sekciu vľavo" a "ak vidíte mliečne výrobky, prešla ste mi." Algoritmy fungujú takto. Môžeme použiť vývojový diagram na ilustráciu pokynov na základe kritérií, o ktorých vieme vopred alebo ktoré sa dozvieme počas procesu.

( obrázok s názvom "Riadenie ľadovcom" EDIT: zdvorilosť Trigger a Freewheel)

Z START by ste šli po ceste a v závislosti od toho, čo sa stane, budete postupovať po "toku" na konečný výsledok. Vývojové diagramy sú vizuálne nástroje, ktoré môžu pochopiteľne predstavovať súbor pokynov používaných počítačmi. Podobne algoritmy pomáhajú robiť to isté s viac matematických modelov.

Grafy

Použite graf na ilustráciu rôznych spôsobov, ako môžeme dať smer.

Tento graf môžeme vyjadriť ako spojenie medzi všetkými jeho bodmi. Aby sme reprodukovali tento obrázok, môžeme dať súbor inštrukcií niekomu inému.

Metóda 1

Môžeme ju reprezentovať ako sériu bodov a informácie sa budú riadiť štandardnou formou grafu ={ (x1, y1),( x2, y2),. ..,( xn, yn)}.

graf ={ (0,0),( 3,0),( 3,3),( 5,5),( 7,10),( 8,7),( 9,4))}

Je veľmi ľahké vykreslovať každý bod jeden po druhom a pripojiť ho k predchádzajúcemu bodu. Predstavte si však graf s tisíckami bodov alebo viacerými segmentmi, ktoré sa každým spôsobom pohybujú.Tento zoznam by mal veľa údajov, nie? A potom sa musieť spojiť každý jeden, jeden po druhom, môže byť bolesťou.

Metóda 2

Ďalšia vec, ktorú môžeme urobiť, je poskytnúť začiatočný bod, sklon linky medzi ním a ďalším bodom a naznačiť, kde možno očakávať ďalší bod pomocou štandardnej formy grafu ={ (začiatočný bod}, [m1, x1, h1],. .., [mn, xn, hn]}, kde premenná "m" predstavuje sklon riadku, x znamená smer započítania( či x alebo y)"

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

rovnaký graf. Môžete vidieť, že posledné tri výrazy v tomto vyjadrení sú rovnaké, takže môžeme byť schopní vyrezať to dole tým, že hovorí "opakovať, že trikrát" nejakým spôsobom. Keď povedať, že kedykoľvek uvidíte premennú 'R', to znamená opakovať poslednú vec, ktorú môžeme urobiť takto:

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

Čo ak jednotlivé body naozaj nezáleží a iba graf sám o sebe robí?Posledné tri časti môžeme konsolidovať takto:

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

Skráti to trochu z miesta, kde boli predtým.

Metóda 3

Skúsme to urobiť iným spôsobom.

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

Tu máme v čistom algebrickom pojme. Opäť, ak body samy nezáleží a iba graf robí, môžeme konsolidovať posledné tri položky.

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

Teraz, ktorú metódu si vyberiete, závisí od vašich schopností.Možno ste skvelý s matematikou a grafovaním, takže si vyberiete poslednú možnosť.Možno ste pri navigácii dobré, takže si vyberiete druhú možnosť.V oblasti počítačov však robíte mnoho rôznych druhov úloh a schopnosť počítača sa naozaj nezmení.Preto sú algoritmy optimalizované pre úlohy, ktoré dokončili.

Ďalšou dôležitou poznámkou je, že každá metóda závisí od kľúča. Každá sada pokynov je zbytočná, ak neviete, čo s nimi robiť.Ak neviete, že by ste mali vykresliť každý bod a pripojiť bodky, prvý súbor bodov neznamená nič.Pokiaľ neviete, čo každá premenná znamená v druhej metóde, nebudete vedieť, ako ich aplikovať, rovnako ako kľúč pre šifru. Tento kľúč je tiež neoddeliteľnou súčasťou používania algoritmov a často sa tento kľúč nachádza v komunite alebo prostredníctvom "štandardného".

Kompresia súborov

Pri preberaní súboru. zip extrahujete obsah tak, aby ste mohli použiť akékoľvekje vo vnútri. V súčasnosti sa väčšina operačných systémov môže ponoriť do súborov. zip, ako sú normálne priečinky, robia všetko na pozadí.Na svojom systéme Windows 95 pred viac ako desiatimi rokmi som musel všetko vytiahnuť manuálne, než som mohol vidieť niečo viac ako názvy súborov vo vnútri. To preto, že to, čo bolo uložené na disku ako súbor. zip, nebolo v použiteľnej forme. Premýšľajte o rozťahovacom gauči. Keď ju chcete použiť ako posteľ, musíte odstrániť podložky a rozvinúť, čo zaberie viac miesta. Keď ho nepotrebujete alebo ho chcete prepravovať, môžete ho zložiť späť.

Kompresné algoritmy sú upravené a optimalizované špecificky pre typy súborov, na ktoré sú zacielené.Zvukové formáty napríklad používajú odlišný spôsob ukladania údajov, ktoré pri dekódovaní zvukovým kodekom poskytujú zvukový súbor podobný pôvodnému tvaru vlny. Viac informácií o týchto rozdieloch nájdete v našom predchádzajúcom článku Aké sú rozdiely medzi všetkými týmito formátmi zvuku? Lossless audio formáty a. zip súbory majú jednu vec spoločnú: obaja prinášajú originálne dáta v presnej forme po procese dekompresie. Zneužívajúce zvukové kodeky používajú iné prostriedky na šetrenie miesta na disku, ako napríklad orezávanie frekvencií, ktoré ľudské uši nedajú počuť, a vyhladenie kriviek v sekciách, aby sa zbavili nejakých detailov. Nakoniec, aj keď pravdepodobne nebudeme môcť naozaj počuť rozdiel medzi skladbou MP3 a CD, vôbec neexistuje informačný deficit.

Šifrovanie údajov

Algoritmy sa používajú aj pri zabezpečovaní dátových alebo komunikačných liniek. Namiesto ukladania údajov tak, aby používala menej miesta na disku, je uložená spôsobom, ktorý nedokáže detekovať iné programy. Ak niekto ukradne pevný disk a začne ho skenovať, môže zobrať dáta aj po odstránení súborov, pretože samotné dáta sú stále tam, hoci miesto presmerovania na neho prešlo. Keď sú dáta šifrované, čo je uložené, nevyzerá to, čo to je. Zvyčajne to vyzerá náhodne, ako keby sa fragmentácia časom stavala. Môžete tiež uložiť údaje a vytvoriť ich ako iný typ súboru. Obrazové súbory a hudobné súbory sú pre to dobré, pretože môžu byť pomerne veľké, bez toho, aby sa napríklad vytvárali podozrenie. To všetko sa používa pomocou matematických algoritmov, ktoré berú nejaký druh vstupu a konvertujú ho na iný, veľmi špecifický typ výstupu. Viac informácií o fungovaní šifrovania nájdete na stránke HTG vysvetľuje: Čo je šifrovanie a ako to funguje? Algoritmy

sú matematické nástroje, ktoré poskytujú rôzne použitia v informatike. Pracujú na tom, aby poskytovali cestu medzi začiatočným bodom a koncovým bodom konzistentným spôsobom a poskytli pokyny na ich sledovanie. Dozvedieť viac, než sme zdôraznili? Zdieľajte svoje vysvetlenia v komentároch!