Med mindre du er i matte eller programmering, kan ordet "algoritme" være gresk til deg, men det er en av byggesteinene av alt du bruker til å lese denne artikkelen. Her er en rask forklaring på hva de er, og hvordan de fungerer.
Ansvarsfraskrivelse: Jeg er ikke en matematikk- eller datavitenskapslærer, så ikke alle vilkårene jeg bruker er tekniske. Det er fordi jeg prøver å forklare alt på vanlig engelsk fordi folk ikke er ganske komfortabel med matte. Når det er sagt, er det noen matte involvert, og det er uunngåelig. Math geeks, vær så snill å korrigere eller bedre forklare i kommentarene, men vær så snill, hold det enkelt for de matematisk disinclined blant oss.
Bilde ved Ian Ruotsala
Et grunnleggende sett med instruksjoner
Grafer
Vi kan uttrykke denne grafen som en forbindelse mellom alle dens punkter. For å reprodusere dette bildet kan vi gi et sett instruksjoner til noen andre.
Metode 1
Vi kan representere dette som en serie punkter, og informasjonen vil følge standardformen for graf = {(x1 , y1), (x2, y2), ..., (xn, yn)}.
graf = {(0,0), (3,0), (3,3), (5,5), 7,10), (8,7), (9,4), (10,1)}
Det er ganske enkelt å plotte hvert punkt, den ene etter den andre, og koble dem til det forrige punktet. Imidlertid forestille du en graf med tusen punkter eller flere segmenter, alle går på hvilken måte. Den listen ville ha mye data, ikke sant? Og da må du koble til hverandre, en om gangen, det kan være en smerte.
Metode 2
En annen ting vi kan gjøre er å gi et utgangspunkt, sluttlinjen mellom linjen og neste punkt, og Angi hvor du kan forvente det neste punktet ved hjelp av standardformen for graf = {(startpunkt}, [m1, x1, h1], ..., [mn, xn, hn]}. Her representerer variabelen 'm' skråningen av linjen 'x' representerer retningen for å telle inn (enten x eller y), og 'h' forteller deg hvor mange som skal telle i retningen. Du kan også huske å plotte et punkt etter hver bevegelse.
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]}
Du vil ende opp med samme graf. Du kan se at de tre siste uttrykkene i dette uttrykket er de samme, så vi kan kanskje trimme det ned ved å bare si "gjenta det tre ganger" på en eller annen måte. La oss si at når som helst ser du variablen 'R', betyr det å gjenta det siste. Vi kan gjøre dette:
graph = {(0 , 0), [0, x, 3], [0, y, 3], [1, x, 2], [2,5, x, 2], [-3, x, 1], [R = 2]}
Hva om de enkelte punktene egentlig ikke betyr noe, og bare grafen selv gjør det? Vi kan konsolidere de siste tre seksjonene slik:
graf = {(0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2,5, x, 2], [-3, x, 3]}
Det forkorter ting litt fra hvor de var før.
Metode 3
La oss prøve å gjøre dette på en annen måte.
y = 0, 0≤x≤3
x = 0, 0 ≤y≤3
y = x, 3≤x≤5
y = 2,5x-7,5, 5y = -3x + 29, 7 y = -3x + 29, 8≤x≤9
y = -3x + 29, 9≤x <10
Her har vi det i rene algebraiske termer. En gang til, hvis poengene selv ikke har betydning og bare grafen gjør, kan vi konsolidere de tre siste elementene.
y = 0, 0≤x≤3
x = 0, 0≤y≤3
y = x, 3y = 2,5x-7,5, 5 y = -3x + 29, 7 Nå, hvilken metode du velger avhenger av dine evner. Kanskje du er flott med matte og grafer, så du velger det siste alternativet. Kanskje du er god til å navigere, så du velger det andre alternativet. I datamaskins rike gjør du imidlertid mange forskjellige typer oppgaver, og datamaskinens evne endres ikke egentlig. Derfor er algoritmer optimalisert for oppgavene de fullfører.
Et annet viktig poeng å merke seg er at hver metode er avhengig av en nøkkel. Hvert sett med instruksjoner er ubrukelig med mindre du vet hva du skal gjøre med dem. Hvis du ikke vet at du skal plotte hvert punkt og koble prikkene, betyr det første settet med punkter ingenting. Med mindre du vet hva hver variabel betyr i den andre metoden, vet du ikke hvordan du skal bruke dem, akkurat som nøkkelen til en kryptering. Denne nøkkelen er også en integrert del av bruk av algoritmer, og ofte er nøkkelen funnet i fellesskapet eller via en "standard".
Filkomprimering
Komprimeringsalgoritmer justeres og optimaliseres spesielt for hvilke typer filer de er målrettet mot. Lydformater, for eksempel, bruker hver en annen måte til å lagre data som, når de dekodes av lydkoden, vil gi en lydfil som ligner på den opprinnelige bølgeformen. For mer informasjon om forskjellen, sjekk ut vår forrige artikkel, Hva er forskjellene mellom alle lydformatene? Lossless lydformater og .zip-filer har en ting til felles: de gir begge opprinnelige dataene i eksakt form etter prosessen med dekomprimering. Lossy audio codecs bruker andre metoder for å spare diskplass, for eksempel trimming av frekvenser som ikke kan høres av menneskelige ører og utjevner bølgeformen i seksjoner for å kvitte seg med detaljer. Til slutt, mens vi kanskje ikke kan høre forskjellen mellom en MP3 og et CD-spor, er det definitivt et underskudd av informasjon i det tidligere.
Datakryptering
Algoritmer er matematiske verktøy som gir en rekke bruksområder i datavitenskap. De jobber for å gi en bane mellom et startpunkt og et sluttpunkt på en konsekvent måte, og gir instruksjonene for å følge den. Vet mer enn det vi fremhevet? Del forklaringene dine i kommentarene!
Slik logger du på OS X Yosemite automatisk uten passord
Hvis du har en datamaskin hjemme og det er ingen andre rundt, er det egentlig ingen grunn til å logge inn hver gang du trenger å bruke den. Heldigvis kan du enkelt angi OS X for å logge inn automatisk. Du kan også sette opp Windows for å logge inn automatisk. Lag OS X Logg inn automatisk Åpne systeminnstillinger, klikk på ikonet Sikkerhet og personvern.
12 Handy Tools for å holde på USB-stikkontakten
Hvis du er som meg, har du sannsynligvis en haug med ubrukelige USB-pinner som ligger rundt huset. USB-pinner kommer fremdeles til nytte hver eneste gang, men mer og mer stoler jeg på skyen. Det er imidlertid disse tider, når du ikke kan koble til skyen, og en USB-pinne er ditt eneste valg.Jeg bærer en USB-pinne med meg når jeg reiser med en hel masse programmer og filer som jeg kan bruke til å skanne etter trådløse nettverk, partisjonstasjoner, brenne CDer og DVDer, redigere bilder og mye mer. I den