Mis on arvutialgoritmid ja kuidas need töötavad?

Sisukord:

Mis on arvutialgoritmid ja kuidas need töötavad?
Mis on arvutialgoritmid ja kuidas need töötavad?

Video: Mis on arvutialgoritmid ja kuidas need töötavad?

Video: Mis on arvutialgoritmid ja kuidas need töötavad?
Video: Oil Fixes That You Must Learn | Workshop Diaries | Edd China - YouTube 2024, Aprill
Anonim
Kui pole matemaatika või programmeerimisega seotud, võib sõna "algoritm" teile olla kreeka keel, kuid see on üks selle artikli lugemiseks kasutatavatest elementidest. Siin on kiire selgitus, mis need on ja kuidas nad töötavad.
Kui pole matemaatika või programmeerimisega seotud, võib sõna "algoritm" teile olla kreeka keel, kuid see on üks selle artikli lugemiseks kasutatavatest elementidest. Siin on kiire selgitus, mis need on ja kuidas nad töötavad.

Vastutusest loobumine: ma pole matemaatika või arvutiõpetuse õpetaja, seega pole kõik kasutatavad terminid tehnilised. Sellepärast, et üritan seletada kõike lihtsas inglise keeles, ei ole inimesed matemaatikaga üsna rahul. Seda öeldes on matemaatika seotud ja see on vältimatu. Matemaatika geeksid, võite kommentaare parandada või paremini selgitada, kuid palun hoidke seda matemaatiliselt meelepärases mõttes meie seas lihtsaks.

Pilt poolt Ian Ruotsala

Mis on algoritm?

Sõna "algoritm" on etimoloogia sarnane "algebra", välja arvatud see, et see viitab araabia matemaatik ise, al-Khwarizmi (lihtsalt huvitav tibi). Algoritm meie seas mitte-programmeerijate jaoks on juhiste kogum, mis võtab sisendi A ja annab välja väljundi B, mis muudab mingil viisil seotud andmeid. Algoritmidel on palju erinevaid rakendusi. Matemaatika puhul saavad nad aidata arvutamisel funktsioone andmepunktide punktidest palju arenenumate asjade seas. Peale nende kasutamise programmitöö ise, nad mängivad olulist rolli asjades faili pakkimise ja andmete krüpteerimist.

Põhikomplekt juhiseid

Oletame, et sinu sõber kohtub sind toidupoodis ja sa suunad teda suunas. Te ütlete selliseid asju nagu "tulge läbi parempoolsed uksed", "läbige vasakpoolne kalasektsioon" ja "kui näete piimatööstust, läksite mind edasi". Algoritmid töötavad niimoodi. Me võime kasutada vooskeemi juhiste illustreerimiseks, mis põhinevad kriteeriumitel, mida me enneaegselt teame, või protsessi käigus.

(pilt pealkirjaga "Icebreaking Routine" EDIT: viisakalt Trigger ja Freewheel)
(pilt pealkirjaga "Icebreaking Routine" EDIT: viisakalt Trigger ja Freewheel)

Algusest START alustab teed ja sõltuvalt sellest, mis juhtub, järgige lõpptulemusena voolu. Voogarakud on visuaalsed tööriistad, mis võivad arusaadavalt kujutada arvutite juhiseid. Samamoodi aitavad algoritmid sama teha matemaatika-põhiste mudelitega.

Graafikud

Kasutame graafikut, et illustreerida erinevaid juhiseid.

Me võime seda graafi väljendada kõigi tema punktide vahelise seosega. Selle pildi taasesitamiseks võime anda kellelegi teisele juhiseid.
Me võime seda graafi väljendada kõigi tema punktide vahelise seosega. Selle pildi taasesitamiseks võime anda kellelegi teisele juhiseid.

1. meetod

Me saame seda kujutada rea punktidena ning teave järgib graafiku standardvormingut = {(x1, y1), (x2, y2), …, (xn, yn)}.

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

Punkti on lihtne püstitada üksteise järel ja ühendada need eelmise punktiga. Ent kujutlege graafikut, millel on tuhat punkti või mitu segmenti, mis kõik lähevad igal viisil. Selles loetel oleks palju andmeid, eks? Ja siis, kui ühendada igaüks, üks korraga, võib olla valu.

2. meetod

Teine asi, mida me saame teha, on anda lähtepunkt, joonise ja selle järgmise punkti vaheline joon ja näidata, kuhu järgmisel punktis kasutada graafi standardvormingut = {(lähtepunkt), [m1, x1, h1 ], …, [mn, xn, hn]}. Siin tähistab muutuja "m" rea kalle, "x" tähistab suunda loendama (kas x või y) ja "h" ütleb teile, kuidas paljusid loendama selles suunas. Samuti võite meeles pidada, et iga liikumise järel asetatakse punkt.

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]}

Sul on sama graafik. Näete, et sellel väljendil on kolm viimast terminit ühesugused, nii et me võime seda lõigata, öeldes mingil viisil, et "korrake seda kolm korda". Oletame, et igal ajal näete muutujat "R", see tähendab, et korrata viimast asja. Me suudame seda teha:

graph = {(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 olulised ja ainult graafik ise teeb? Me võime need kolm viimast sektsiooni konsolideerida järgmiselt:

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

See lühendab asju natuke sellest, kus nad varem olid.

3. meetod

Proovime seda teha muul viisil.

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

Siin on see puhas algebralises mõttes. Veelkord, kui punktid ise ei oma tähtsust ja ainult graafikut, siis võime konsolideerida viimase kolme punkti.

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

Nüüd valib teie valitud meetod teie võimeid. Võibolla oled suurepärane matemaatika ja graafikutega, nii et valite viimase võimaluse. Võibolla olete navigatsioonis hea, nii et valite teise võimaluse. Kuid arvutite valdkonnas teete palju erinevaid ülesandeid ja arvuti võimsus ei muutu. Seetõttu on algoritmid optimeeritud nende ülesannete täitmiseks.

Veel üks oluline märkus on see, et iga meetod tugineb võti. Iga juhiste komplekt on kasutu, kui te ei tea, mida nendega teha. Kui te ei tea, et peaksite mõlemat punkti joonistama ja punktid ühendama, ei tähenda esimene punktide komplekt midagi. Kui te ei tea, mida teisel meetodil iga muutuja tähendab, siis ei tea, kuidas neid rakendada, nagu ka võti. See võti on samuti algoritmide kasutamise lahutamatu osa ja tihti on see võti asetatud kogukonnas või "standardse" kaudu.

Faili tihendamine

Kui laadite.zip-faili, siis saate selle sisu välja nii, et saaksite kasutada mis tahes sisu.Tänapäeval saab enamik operatsioonisüsteeme hõljuda.zip-failidena nagu need olid tavalised kaustad, kõik taustal on. Kümnendil tagasi oma Windows 95-masinas oli mul kõik käsitsi eraldada, enne kui nägin midagi enamat kui sisestatud failinimesid. See on see, sest kettale salvestatud.zip-faili ei kasutatud kasutatavas vormis. Mõtle välja tõmbavale diivanile. Kui soovite seda kasutada voodina, peate eemaldama padjad ja lahti pakkima, mis võtab rohkem ruumi. Kui te seda ei vaja või soovite seda transportida, saate seda varundada.

Kompresseerimisalgoritme kohandatakse ja optimeeritakse konkreetselt neile määratud failidele. Näiteks heliformaadid kasutavad erineval viisil andmete salvestamist, mis helikodeekode korral dekodeeritakse, annab algse lainekuju sarnase helifaili. Lisateavet nende erinevuse kohta leiate meie eelmistest artiklitest. Millised on kõigi nende audioformaatide vahelised erinevused? Kaotatud audioformaadid ja.zip-failid on ühised: need mõlemad annavad algsetele andmetele täpse kujundi pärast dekompressiooni protsessi. Kaotatud helikodeekid kasutavad kettaruumi kokkuhoiuks muid vahendeid, nagu inimene, mida saab kuulda inimestest kõrvade abil, ja lainurkide silumiseks lõigetes, et mõned detailid lahti saada. Lõppude lõpuks, kuigi me ei pruugi tegelikult suutnud kuulda erinevust MP3 ja CD raja, seal on kindlasti puudujääk teabe esimeses.

Andmete krüpteerimine

Algorithme kasutatakse ka andmete või sideliinide turvalisuse tagamiseks. Selle asemel, et salvestada andmeid nii, et see kasutab vähem kettaruumi, on see salvestatud viisil, mida teised programmid ei tuvasta. Kui keegi varvastab teie kõvaketta ja hakkab seda skannima, saavad nad andmeid koguda isegi siis, kui kustutate faile, kuna andmed endiselt on olemas, kuigi selle edastamise asukoht on kadunud. Kui andmed on krüptitud, siis kõik, mida salvestatakse, ei tundu olevat. Tavaliselt tundub see juhuslikult välja, nagu oleks aja jooksul tekkinud killustatus. Võite ka andmeid salvestada ja muuta need teist tüüpi failina. Piltfailid ja muusikafailid on selle jaoks kasulikud, näiteks võivad nad olla suhteliselt suured, kahtlustamata. Kõik see tehakse matemaatiliste algoritmide abil, mis võtavad mõnda sisendit ja muudavad selle teise, väga spetsiifilise väljundi tüübiks. Lisateavet selle kohta, kuidas krüptimine toimib, vaadake HTG Explains: Mis on krüptimine ja kuidas see toimib?
Algorithme kasutatakse ka andmete või sideliinide turvalisuse tagamiseks. Selle asemel, et salvestada andmeid nii, et see kasutab vähem kettaruumi, on see salvestatud viisil, mida teised programmid ei tuvasta. Kui keegi varvastab teie kõvaketta ja hakkab seda skannima, saavad nad andmeid koguda isegi siis, kui kustutate faile, kuna andmed endiselt on olemas, kuigi selle edastamise asukoht on kadunud. Kui andmed on krüptitud, siis kõik, mida salvestatakse, ei tundu olevat. Tavaliselt tundub see juhuslikult välja, nagu oleks aja jooksul tekkinud killustatus. Võite ka andmeid salvestada ja muuta need teist tüüpi failina. Piltfailid ja muusikafailid on selle jaoks kasulikud, näiteks võivad nad olla suhteliselt suured, kahtlustamata. Kõik see tehakse matemaatiliste algoritmide abil, mis võtavad mõnda sisendit ja muudavad selle teise, väga spetsiifilise väljundi tüübiks. Lisateavet selle kohta, kuidas krüptimine toimib, vaadake HTG Explains: Mis on krüptimine ja kuidas see toimib?

Algoritmid on matemaatilised tööriistad, mis pakuvad arvuteid mitmesuguseid kasutusalasid. Nad töötavad selle nimel, et tagada järjekindlalt tee lähtepunkti ja lõpp-punkti vahel ning anda juhised selle järgimiseks. Teadke rohkem, kui me rõhutasime? Jagage selgitusi kommentaarides!

Soovitan: