Medmindre du er i matematik eller programmering, kan ordet "algoritme" være græsk til dig, men det er en af byggestenene af alt, hvad du bruger til at læse denne artikel. Her er en hurtig forklaring på, hvad de er, og hvordan de virker.
Ansvarsfraskrivelse: Jeg er ikke en matematik eller computervidenskabslærer, så ikke alle de termer, jeg bruger, er tekniske. Det er fordi jeg forsøger at forklare alt på almindeligt engelsk, fordi folk ikke er helt fortrolig med matematik. Når det er sagt, er der noget matematik involveret, og det er uundgåeligt. Math geeks, er du velkommen til at korrigere eller bedre forklare i kommentarerne, men vær venlig at holde det enkelt for det matematisk uhensigtsmæssige blandt os.
Billede af Ian Ruotsala
Ordet ' algoritmen 'har en etymologi svarende til' algebra ', bortset fra at dette refererer til den arabiske matematiker selv, al-Khwarizmi (bare en interessant tidbit). En algoritme for de ikke-programmører blandt os er et sæt instruktioner, der tager et input, A, og giver en output, B, der ændrer de involverede data på en eller anden måde. Algoritmer har en bred vifte af applikationer. I matematik kan de hjælpe med at beregne funktioner fra punkter i et datasæt blandt langt mere avancerede ting. Bortset fra deres anvendelse i programmeringen selv spiller de store roller i ting som filkomprimering og datakryptering.
Lad os sige, at din ven møder dig i en købmand og du leder ham hen imod du. Du siger ting som "kom ind gennem højre sidedøre", "pass fiskesektionen til venstre" og "hvis du ser mejeriet, passerede du mig." Algoritmer fungerer sådan. Vi kan bruge et rutediagram til at illustrere instruktioner baseret på kriterier, vi kender i forvejen, eller finde ud af under processen.
Lad os bruge en graf til at illustrere de forskellige måder, vi kan give retninger.
Vi kan udtrykke denne graf som en forbindelse mellem alle dens point. For at reproducere dette billede kan vi give et sæt instruktioner til en anden.
Metode 1
Vi kan repræsentere dette som en række punkter, og oplysningerne følger 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 ret nemt at plotte hvert punkt, den ene efter den anden, og forbinde dem med det forrige punkt. Men forestil dig en graf med tusind punkter eller flere segmenter, der alle går hver eneste vej. Denne liste ville have mange data, ikke? Og derefter at skulle forbinde hver enkelt, en ad gangen, kan være en smerte.
Metode 2
En anden ting, vi kan gøre, er at give et udgangspunkt, linjens hældning mellem det og det næste punkt, og Angiv, hvor du kan forvente det næste punkt ved hjælp af standardformularen for graf = {(startpunkt}, [m1, x1, h1], ..., [mn, xn, hn]}. Her repræsenterer variablen 'm' hældningen af linjen 'x' repræsenterer retningen til at tælle ind (hvad enten x eller y), og 'h' fortæller dig hvor mange der skal tælle i retningen. Du kan også huske at plotte et punkt efter hver bevægelse.
graf = {(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 med den samme graf. Du kan se, at de sidste tre udtryk i dette udtryk er ens, så vi kan muligvis trimme det ved at sige "gentage det tre gange" på en eller anden måde. Lad os sige, at når som helst ser du variablen 'R', betyder det at gentage det sidste. Vi kan gøre dette:
graph = {(0 , 0), [0, x, 3], [0, y, 3], [1, x, 2], [2,5, x, 2], [-3, x, 1], [R = 2]}
Hvad hvis de enkelte punkter ikke rigtig betyder noget, og kun grafen selv gør? Vi kan konsolidere de sidste tre sektioner som sådan:
graf = {(0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2,5, x, 2], [-3, x, 3]}
Lad os prøve at gøre det på en anden måde.
y = 0, 0≤x≤3
x = 0, 0
Metode 3
≤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. Endnu en gang, hvis punkterne ikke betyder noget, og kun grafen gør det, kan vi konsolidere de sidste tre punkter.
y = 0, 0≤x≤3
x = 0, 0≤y≤3
y = x, 3y = 2,5x-7,5, 5 y = -3x + 29, 7
Nu, hvilken metode vælger du afhænger af dine evner. Måske er du god med matematik og grafer, så du vælger den sidste mulighed. Måske er du god til at navigere, så du vælger den anden mulighed. I computermarkedet gør du dog mange forskellige opgaver, og computerens evne ændrer sig ikke rigtig. Derfor er algoritmer optimeret til de opgaver, de gennemfører.
Et andet vigtigt punkt at bemærke er, at hver metode er afhængig af en nøgle. Hvert sæt instruktioner er ubrugeligt, medmindre du ved hvad du skal gøre med dem. Hvis du ikke ved, at du skal plotte hvert punkt og forbinde prikkene, betyder det første sæt punkter ikke noget. Medmindre du ved, hvad hver variabel betyder i den anden metode, ved du ikke hvordan man skal anvende dem, ligesom nøglen til en chiffer. Denne nøgle er også en integreret del af brugen af algoritmer, og ofte er den nøgle fundet i samfundet eller via en "standard".
Når du downloader en .zip-fil, udpakker du indholdet, så du kan bruge hvad der er indeni af det. I dag kan de fleste operativsystemer dykke ind i .zip-filer som om de var normale mapper, gør alt i baggrunden. På min Windows 95-maskine for over et årti siden måtte jeg udtrække alt manuelt, før jeg kunne se noget mere end filnavnet indeni. Det skyldes, at hvad der blev gemt på disken som en .zip-fil, ikke var i en brugbar form. Tænk på en pull-out sofa. Når du vil bruge det som en seng, skal du fjerne puderne og udfolde det, hvilket tager mere plads. Når du ikke har brug for det, eller du vil transportere det, kan du folde det igen.
Komprimeringsalgoritmer tilpasses og optimeres specifikt til de typer filer, de er målrettet mod. Lydformater, for eksempel, bruger hver en anden måde til at gemme data, der, når de afkodes af lydkoden, vil give en lydfil, der ligner den oprindelige bølgeform. For mere information om denne forskel, se vores tidligere artikel, Hvad er forskellene mellem alle disse lydformater? Lossless lydformater og .zip-filer har én ting til fælles: de giver begge de originale data i sin nøjagtige form efter dekomprimeringsprocessen. Lossy audio codecs bruger andre midler til at spare diskplads, såsom trimning af frekvenser, der ikke kan høres af menneskelige ører og udjævning af bølgeformen i sektioner for at slippe af med nogle detaljer. I sidste ende, selv om vi måske ikke kan høre forskellen mellem et MP3 og et cd-spor, er der helt sikkert et underskud på information i det tidligere.
Algoritmer bruges også til sikring af data eller kommunikation linjer. I stedet for at gemme data, så den bruger mindre diskplads, gemmes den på en måde, der ikke kan opdages af andre programmer. Hvis nogen stjæler din harddisk og begynder at scanne det, kan de hente data, selv når du sletter filer, fordi dataene selv er der stadig, selvom viderestillingsstedet er væk. Når data krypteres, bliver alt, hvad der er lagret, ikke som det er. Det ser som regel tilfældigt ud, som om fragmentering havde bygget op over tid. Du kan også gemme data og gøre det til en anden type fil. Billedfiler og musikfiler er gode til dette, da de kan være ret store uden at tegne mistanker, for eksempel. Alt dette gøres ved hjælp af matematiske algoritmer, som tager en slags input og konverterer den til en anden, meget specifik type udgang. For mere information om, hvordan kryptering fungerer, skal du tjekke HTG Forklarer: Hvad er kryptering og hvordan virker det?
Algoritmer er matematiske værktøjer, der giver en bred vifte af anvendelser inden for datalogi. De arbejder for at give en vej mellem et startpunkt og et slutpunkt på en ensartet måde, og giver vejledningen til at følge den. Vide mere end hvad vi fremhævede? Del dine forklaringer i kommentarerne!
Installer, start og kør Mac OS X fra en ekstern harddisk
Leder du efter en måde at installere og køre OS X på en ekstern harddisk? Dette kan være nyttigt af et par forskellige årsager. For det første giver det dig mulighed for at køre en anden kopi af OS X uden at have brug for en ekstra Mac-computer.Da du også kan køre en fuld kopi af OS X på det eksterne drev, kan den også bruges til fejlfinding på andre Mac'er, eller det kan være som en slags virtuelt OS X. Jeg har all
Sådan tilpasser du dit tastatur til OS X og tilføjer genveje
Mac-brugere ved, at tastaturgenveje er vejen at gå i OS X. Brug tastaturet til at udføre rutinemæssige og gentagne opgaver er en fantastisk timesaver og virkelig opgrader dit færdighedsniveau, men vidste du, at du kan tilføje eller endda tilpasse tastaturgenveje? Styring af din Mac med tastaturet er ikke en lille del af OS Xs (og også tidligere versioner) DNA.