16Aug

Mis on arvutialgoritmid ja kuidas need 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 etimologia sarnane "algebra", välja arvatud see, et see viitab araabia matemaatik ise, al-Khwarizmi( lihtsalt huvitav tidbit).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 juhistest

Oletame, et sinu sõber kohtub teid toidupoes ja te suunate 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)

Alates START alustasite 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 nende punktide vahelise seosega. Selle pildi taasesitamiseks võime anda kellelegi teisele juhiseid.

meetod 1

Me võime seda kujutada kui punktide rida ja teave järgiks graafiku standardvormingut ={ (x1, y1),( x2, y2),. ..,( xn, yn)}.

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

On üsna lihtne joonistada iga punkt ü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.

meetod 2

Teine asi, mida me saame teha, on anda lähtepunkt, joone 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"räägib sulle, kui palju lugeda selles suunas. Samuti võite meeles pidada, et iga liikumise järel asetatakse punkt.

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

LõppkokkuvõttesSama graafi näete, et kolm viimast terminit selles eksemplaris on ühesugused, nii et me võime seda lõigata nii, et ütleks "kordama seda kolm korda" mingil viisil. Oletame, et igal ajal näete muutujat "RNäeme, see tähendab, et korrata viimast asja. Me saame 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 üksikute punktidega pole tegelikult tegemist ja ainult graafik ise teeb? Me võime need kolm viimast sektsiooni konsolideerida järgmiselt:

graaf ={ (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.

meetod 3

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 algebraline termin. 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õimete põhjal. 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.

-failide tihendamine

Kui laadite. zip-faili, siis saate selle sisu lahti, et saaksite kasutada mis taheson selle sees. Tänapäeval saab enamus operatsioonisüsteeme sukelduda. zip-failidena, nagu need olid tavalised kaustad, kõik taustal kõik. Kümnendil tagasi oma Windows 95-masinas oli mul kõik käsitsi eraldada, enne kui nägin midagi enamat kui sisestatud failinimesid. Seda seetõttu, et 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 selle varundada.

tihendusalgoritme kohandatakse ja optimeeritakse spetsiifiliselt 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 helikemoodulid kasutavad kettaruumi salvestamiseks teisi vahendeid, näiteks kärpimise sagedusi, mida inimese kõrvad ei kuule ja lainurkide silumiseks lõigetes, et mõned detailid lahti saada. Lõpuks, kuigi me ei pruugi tõesti kuulda vahe MP3 ja CD rada, on kindlasti puudujääk teabe esimeses.

andmete krüpteerimine

algoritme 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 edasisuunamise asukoht on kadunud. Kui andmed krüpteeritakse, ei salvestata ükskõik milline see, mis see on. 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!