Vastuuvapauslauseke: En ole matemaattinen tai tietotekniikan opettaja, joten kaikki käyttämät ehdot eivät ole teknisiä. Tämä johtuu siitä, että yritän selittää kaikkea selkeässä englanninkielessä, koska ihmiset eivät ole varsin tyytyväisiä matematiikkaan. Sanotaan, että kyseessä on matemaattinen osuus, ja tämä on väistämätöntä. Matemaattiset geeksit, voit vapaasti korjata tai selittää paremmin kommentteihin, mutta pidä se yksinkertaisena matemaattisesti epäuskoisena meille.
Kuvaaja: Ian Ruotsala
Mikä on algoritmi?
Sana "algoritmi" on samanlainen etymologia kuin "algebra", paitsi että tämä viittaa arabialaiseen matemaatikkoon itseään, al-Khwarizmiin (vain mielenkiintoinen huojunta). Algoritmi, joka ei ole meidän ohjelmoijamme, on joukko ohjeita, jotka syöttävät sisääntulon A ja antavat tulostuksen B, joka muuttaa tietyn datan. Algoritmeilla on laaja valikoima sovelluksia. Matematiikassa ne voivat auttaa laskemaan funktioita pisteistä datasarjassa paljon kehittyneimpien asioiden joukossa. Sen lisäksi, että ne käyttävät itse ohjelmointiaan, niillä on tärkeä rooli esimerkiksi tiedostojen pakkauksessa ja tietojen salauksessa.
Ohjeiden perussarja
Sanotaan, että ystäväsi tavata sinut ruokakaupassa ja ohjaat häntä kohti sinua. Sanot sellaisia asioita kuin "tule oikealla puolella olevien ovien läpi", "siirtäkää kalasektori vasemmalle" ja "jos näet meijerin, läpäissyt minut." Algoritmit toimivat näin. Voimme käyttää vuokaaviota havainnollistamaan ohjeita, jotka perustuvat kriteereihin, joista tiedämme aikaisemmin tai tiedämme prosessin aikana.
START: stä pääset alas polulle ja riippuen siitä, mitä tapahtuu, seuraat "virtausta" lopputulokseen. Vuokaaviot ovat visuaalisia työkaluja, jotka voivat ymmärtää paremmin tietokoneiden käyttämiä ohjeita. Samoin algoritmit auttavat tekemään samoja matematiikkamalleilla.
Käyrät
Käytetään kaaviota havainnollistamaan erilaisia tapoja, joilla voimme antaa ohjeita.
Menetelmä 1
Voimme edustaa tätä sarjapisteinä ja tiedot noudattavat graafin vakiomuotoa = {(x1, y1), (x2, y2), …, (xn, yn)}.
graph = {(0,0), (3,0), (3,3), (5,5), (7,10), (8,7), (9,4), (10,1)}
On helppoa piirtää jokainen piste peräkkäin ja liittää ne edelliseen pisteeseen. Kuvittele kuitenkin kaavio, jossa on tuhat pistettä tai useita segmentejä, jotka kaikki menevät jokaiseen tapaan. Luettelolla olisi paljon tietoa, eikö? Ja sitten pitää yhdistää jokainen, yksi kerrallaan, voi olla tuskaa.
Menetelmä 2
Toinen asia, jonka voimme tehdä, on antaa lähtöpiste, sen viivan ja seuraavan pisteen välinen viisto ja ilmoittaa, mistä seuraavasta pisteestä voidaan odottaa graafin vakiomuotoa = {(alkupiste}, [m1, x1, h1 ], …, [mn, xn, hn]} Tässä muuttuja "m" edustaa rivin kaltevuutta, "x" edustaa suunnan laskea (x tai y) ja "h" Monet voivat laskea mainitussa suunnassa. Voit muistaa myös piirtää piste kunkin liikkeen jälkeen.
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]}
Tulet lopulta samaan kaavioon. Näet, että viimeiset kolme termiä tässä lausekkeessa ovat samat, joten voimme ehkä leikata sen alas vain sanomalla "toista kolme kertaa" jollain tavalla. Sanotaan, että aina kun näet muuttujan "R", se tarkoittaa toista viimeistä asiaa. Pystymme tähän:
graph = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,1], [R=2]}
Entä jos yksittäisissä kohdissa ei ole väliä, ja vain kaavio itse? Voimme yhdistää nämä kolme viimeistä jaksoa seuraavasti:
graph = {(0,0), [0,x,3], [0,y,3], [1,x,2], [2.5,x,2], [-3,x,3]}
Se lyhentää asioita hieman siitä, missä he olivat aiemmin.
Menetelmä 3
Yritetään tehdä tämä toisella tavalla.
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
Täällä meillä on se puhtaassa algebrassa. Jälleen kerran, jos pisteillä itsellään ei ole merkitystä, ja vain kaavio kuvaa, voimme vahvistaa viimeiset kolme kohdetta.
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
Nyt, mikä menetelmä valitset, riippuu kykyistasi. Ehkä olet hieno matematiikan ja grafiikan avulla, joten valitset viimeisen vaihtoehdon. Ehkä olet hyvä navigointiin, joten valitset toisen vaihtoehdon. Tietokoneiden alueella teet kuitenkin monenlaisia tehtäviä ja tietokoneen kyky ei todellakaan muutu. Siksi algoritmit on optimoitu niiden suorittamiin tehtäviin.
Toinen tärkeä huomionarvo on, että jokainen menetelmä perustuu avaimeen. Jokainen käskyjoukko on hyödytön, ellei tiedä mitä tehdä heidän kanssaan. Jos et tiedä, että sinun pitäisi piirtää jokaisen pisteen ja yhdistää pisteitä, ensimmäinen pistemäärä ei merkitse mitään. Ellei tiedä, mitä jokainen muuttuja tarkoittaa toisessa menetelmässä, et tiedä, miten niitä sovelletaan, aivan kuten avaimen salaus. Tämä avain on myös olennainen osa algoritmien käyttämistä, ja usein kyseinen avain löytyy yhteisöstä tai "standardista".
Tiedostonpakkaus
Kun lataat.zip-tiedoston, otat sisällön niin, että voit käyttää mitä tahansa sen sisällä.Nykyään useimmat käyttöjärjestelmät voivat sukeltaa.zip-tiedostoihin, kuten tavalliset kansiot, tekemällä kaiken taustalla. Minun Windows 95 koneeni yli kymmenen vuotta sitten minulla oli pura kaikki käsin, ennen kuin voisin nähdä mitään muuta kuin tiedostonimet sisällä. Tämä johtui siitä, että levyllä, joka tallennettiin.zip-tiedostona, ei ollut käyttökelpoisessa muodossa. Ajattele ulosvedettävä sohva. Kun haluat käyttää sitä sänkynä, sinun on poistettava tyynyt ja avattava se, mikä vie enemmän tilaa. Kun et tarvitse sitä tai haluat kuljettaa sitä, voit taittaa sen takaisin.
Pakkausalgoritmeja säädetään ja optimoidaan nimenomaan sellaisten tiedostojen tyypille, joihin ne on kohdennettu. Esimerkiksi audiomuodot käyttävät eri tapaa tietojen tallentamiseen, jotka audiokoodekin purkamisessa antavat alkuperäiselle aaltomuodolle samanlaisen äänitiedoston. Lisätietoja näistä eroavuuksista on artikkelissa Edellinen artikkeli, mitkä ovat erot kyseisten audiomuotojen välillä? Lossless audioformaatteja ja.zip-tiedostoja on yksi yhteinen asia: molemmat luovuttavat alkuperäiset tiedot tarkkaan muotoonsa dekompressioprosessin jälkeen. Lossy audio-koodekit käyttävät muita keinoja säästämään levytilaa, kuten leikkaustaajuuksia, joita ei voi kuulla ihmisen korvien kohdalla ja tasoittaa aaltomuotoja osioissa eroon yksityiskohdista. Loppujen lopuksi, vaikka emme voi todella kuulla MP3: n ja CD-raidan välistä eroa, siinä on varmasti tietoja alijäämässä.
Tiedonsalaus
Algoritmit ovat matemaattisia työkaluja, jotka tarjoavat tietotekniikan eri käyttötarkoituksia. Ne pyrkivät saamaan polun lähtökohdan ja loppupisteen välillä johdonmukaisesti ja antamaan ohjeet sen noudattamiseksi. Tiedä enemmän kuin mitä korostimme? Jaa selitykset kommentteihin!