Koduleht » kuidas » Mis on arvuti algoritmid ja kuidas need toimivad?

    Mis on arvuti algoritmid ja kuidas need toimivad?

    Kui te pole matemaatikasse või programmeerimisse sattunud, võib sõna „algoritm” olla kreeka keel, kuid see on kõik selle artikli lugemise aluseks olevad plokid. Siin on kiire selgitus selle kohta, mida nad on ja kuidas nad töötavad.

    Lahtiütlemine: ma ei ole matemaatika- ega arvutiteaduste õpetaja, seega ei ole kõik kasutatavad terminid tehnilised. Seda seetõttu, et ma püüan selgitada kõike inglise keeles, et inimesed ei ole matemaatikaga rahul. Seda silmas pidades on kaasatud mõni matemaatika ja see on vältimatu. Matemaatika geeks, vabalt korrigeerige või selgitage kommentaarides, kuid palun, hoia seda lihtsalt matemaatiliselt ebaühtlaselt meie seas.

    Pilt kasutajalt Ian Ruotsala

    Mis on algoritm?

    Sõna "algoritm" on sarnane "algebra" -ga, välja arvatud see, et see viitab araabia matemaatikule, al-Khwarizmile (lihtsalt huvitav tidbit). Meie jaoks mitteprogrammeerijate jaoks on algoritm juhiste kogum, mis võtab sisendi, A ja annab väljundi B, mis muudab mingil viisil kaasatud andmeid. Algoritmidel on palju rakendusi. Matemaatikas võivad nad arvutada funktsioone andmepaketi punktidest palju rohkem arenenud asjade hulgas. Peale nende kasutamise programmeerimisel ise, mängivad nad olulist rolli sellistes asjades nagu failide tihendamine ja andmete krüpteerimine.

    Põhijuhendid

    Oletame, et sinu sõber kohtab teid toidupoes ja sa juhid teda enda poole. Te ütlete, et sellised asjad nagu "tulevad läbi parempoolsete uste", "läbivad kalade sektsiooni vasakul" ja "kui näed piima, läksid mind mööda." Algoritmid töötavad niimoodi. Me saame kasutada vooskeemi, et illustreerida juhiseid, mis põhinevad eelnevalt teadaolevatel kriteeriumidel või protsessi käigus teada saada.

    (pilt pealkirjaga „Jäämurdmine rutiinne” EDIT: Trigger ja Freewheel)

    STARTist juhitakse teed mööda teed ja sõltuvalt sellest, mis juhtub, järgite „voolu” lõpptulemuseni. Vooskeemid on visuaalsed vahendid, mis mõistetavamalt esindavad arvutite juhiste kogumit. Samamoodi aitavad algoritmid teha sama rohkem matemaatikapõhiste mudelitega.

    Graafikud

    Kasutame graafikut, et illustreerida erinevaid viise, kuidas saame suuniseid anda.

    Me võime seda graafikut väljendada kõigi punktide vahel. Selle pildi reprodutseerimiseks võime anda kellelegi teisele juhiseid.

    1. meetod

    Me saame seda esindada punktide seeriana ja teave järgib graafiku = (x1, y1), (x2, y2),…, (xn, yn) standardvormi.

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

    Iga punkti on üksteise järel üsna lihtne joonistada ja ühendada eelmise punktiga. Kujutage ette graafikut tuhandete punktide või mitme segmendiga, mis kõik läheks. Sellel loetelul oleks palju andmeid, eks? Ja siis peaks igaüks, ükshaaval, ühendama valu.

    2. meetod

    Teine asi, mida me teha saame, on anda alguspunkt, selle ja järgmise punkti vahelise joone kalle ning näidata, kust oodata järgmist punkti, kasutades graafi = (lähtepunkt, [m1, x1, h1 ],…, [Mn, xn, hn] Siin tähistab muutuja 'm' joone kalle, 'x' tähistab suunda (kas x või y) ja 'h' ütleb teile, kuidas Paljud loevad nimetatud suunas, samuti võite meeles pidada, et pärast iga liikumist joonistad punkti.

    graaf = (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 1], [-3, x, 1], [-3, x, 1]

    Te jõuad sama graafikuga. Te näete, et kolm viimast terminit selles väljendis on samad, nii et me võime seda kärpida, öeldes lihtsalt "korrata seda kolm korda" mingil moel. Oletame, et igal ajal näete muutujat 'R', see tähendab viimast asja korrata. Me suudame seda teha:

    graaf = (0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2.5, x, 2], [-3, x, 1], [R = 2]

    Mis siis, kui üksikud punktid ei ole tegelikult tähtsad ja ainult graafik ise? Me võime ühendada need kolm viimast osa, näiteks:

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

    See lühendab asju veidi, kust nad varem olid.

    3. meetod

    Proovime seda teha teisiti.

    y = 0, 0 x = 0, 0≤y≤3
    y = x, 3≤x≤5
    y = 2,5x-7,5, 5 y = -3x + 29, 7 y = -3x + 29, 8 y = -3x + 29, 9≤x≤10

    Siin on see puhas algebraline. Veelgi enam, kui punktid ise ei oma tähtsust ja ainult graafik, siis saame ühendada viimased kolm elementi.

    y = 0, 0 x = 0, 0≤y≤3
    y = x, 3≤x≤5
    y = 2,5x-7,5, 5 y = -3x + 29, 7

    Nüüd, millist meetodit valida, sõltub teie võimetest. Võib-olla oled sa matemaatika ja graafikaga väga hea, et valida viimane valik. Võib-olla olete hea navigeerimisel, nii et valite teise võimaluse. Arvutite valdkonnas teete aga palju erinevaid ülesandeid ja arvuti võime ei muutu. Seetõttu on algoritmid optimeeritud nende ülesannete täitmiseks.

    Teine oluline märkus on, et iga meetod tugineb võtmele. Iga juhiste komplekt on kasutu, kui te ei tea, mida nendega teha. Kui te ei tea, et peaksite iga punkti joonistama ja punktid ühendama, tähendab esimene punktide hulk midagi. Kui te ei tea, mida iga muutuja tähendab teises meetodis, siis ei tea, kuidas neid rakendada, sarnaselt šifri võtmele. See võti on ka algoritmide kasutamise lahutamatu osa ning sageli on see võti leitud kogukonnas või „standardi“ kaudu.

    Failide tihendamine

    .Zip-faili allalaadimisel eraldatakse sisu nii, et saaksite kasutada seda, mis on selle sees. Tänapäeval saavad enamik operatsioonisüsteeme sukelduda .zip-failidesse, nagu need olid tavalised kaustad, tehes kõik taustal. Minu Windows 95 masinal üle kümne aasta tagasi pidin ma kõik käsitsi välja võtma enne, kui ma nägin midagi enamat, kui sees asuvad failinimed. Seda seetõttu, et see, mis salvestati kettale .zip-failina, ei olnud kasutatavas vormis. Mõtle väljatõmmatavale diivanile. Kui soovite seda voodina kasutada, peate padjad eemaldama ja avama, mis võtab rohkem ruumi. Kui te seda ei vaja, või soovite seda transportida, saate selle varundada.

    Tihendamisalgoritme kohandatakse ja optimeeritakse konkreetselt nende failitüüpide jaoks, millele need on suunatud. Näiteks kasutavad helivormingud andmete salvestamiseks teistsugust viisi, mis audiokoodeki dekodeerimisel annab algse lainekuju sarnase helifaili. Lisateabe saamiseks nende erinevuste kohta vaadake meie eelmist artiklit, millised on erinevused kõigi nende audioformaatide vahel? Lossless audio formaadid ja .zip failid on üks ühine asi: nad mõlemad annavad originaalsed andmed täpne vorm pärast dekompressiooni protsessi. Kaotatud heli koodekid kasutavad kettaruumi salvestamiseks muid vahendeid, näiteks kärpimise sagedusi, mida ei saa kuulda inimese kõrvadest, ja osade lainekuju silumis välja, et vabaneda mõnest detailist. Lõpuks, kuigi me ei suuda tõesti kuulda erinevust MP3- ja CD-lugu vahel, on kindlasti endiselt puudulik teave..

    Andmete krüpteerimine

    Algoritme kasutatakse ka andmete või sideühenduste kinnitamisel. Selle asemel, et salvestada andmeid nii, et see kasutab vähem kettaruumi, salvestatakse see viisil, mida teised programmid ei tuvasta. Kui keegi varastab teie kõvaketta ja hakkab seda skannima, saavad nad andmeid koguda isegi siis, kui failid kustutatakse, sest andmed ise on endiselt olemas, kuigi edastamise asukoht on kadunud. Kui andmed on krüpteeritud, ei tundu see mis tahes. Tavaliselt tundub see juhuslikult, nagu oleks aja jooksul killustunud. Samuti saate salvestada andmeid ja muuta see teise failitüübina. Pildifailid ja muusikafailid on selle jaoks head, sest need võivad olla näiteks suured, kahtlemata. Kõik see toimub matemaatiliste algoritmide abil, mis võtavad mingisuguse sisendi ja muudavad selle teiseks, väga spetsiifiliseks väljundiks. Lisateavet krüpteerimise toimimise kohta vaadake HTG Explains: Mis on krüpteerimine ja kuidas see toimib?


    Algoritmid on matemaatilised tööriistad, mis pakuvad mitmesuguseid kasutusviise arvutiteaduses. Nad töötavad selle nimel, et tagada järjepidev tee alguspunkti ja lõpp-punkti vahel ning anda juhiseid selle järgimiseks. Teadke rohkem kui see, mida me rõhutasime? Jagage oma selgitusi kommentaarides!