HTG förklarar: vad är datoralgoritmer och hur fungerar de?

Om du inte är i matematik eller programmering, kan ordet “algoritm” vara grekiska för dig, men det är en av byggstenarna i allt du använder för att läsa den här artikeln. Här är en snabb förklaring av vad de är och hur de fungerar.

Disclaimer: Jag är inte en matte eller datavetenskap lärare, så inte alla villkor jag använder är tekniskt. Det är därför jag försöker förklara allt på ren svenska för människor är inte helt bekväm med matte. Som sagt, det finns en del matematik inblandat, och det är oundvikligt. Mathgeeks, gärna korrigera eller bättre förklara i kommentarerna, men snälla, hålla det enkelt för matematiskt obenägna bland oss.

Bild av Ian Ruotsala

Ordet “algoritm” har en etymologi liknar “algebra,” förutom att det rör sig om arabiska matematiker själv, al-Khwarizmi (bara en intressant godbit). En algoritm för icke-programmerare bland oss, är en uppsättning instruktioner som tar en ingång, A, och ger en utsignal, B, som ändrar de berörda uppgifterna på något sätt. Algoritmer har en mängd olika tillämpningar. I matematik, kan de hjälpa beräkna funktioner från punkter i en datamängd, bland mycket mer avancerade saker. Bortsett från deras användning i programmering själv, de spelar en stor roll i saker som filkomprimering och datakryptering.

Låt oss säga att din vän träffa dig i en livsmedelsbutik och du vägleda honom mot dig. Du säger saker som “komma in genom den högra sidodörrarna”, “passera fisksektionen till vänster” och “om du ser mejeriet, passerade mig.” Algoritmer fungerar så. Vi kan använda ett flödesschema för att illustrera instruktioner baserade på kriterier som vi känner till i förväg eller ta reda på under processen.

(Bild med titeln “Isbrytning Rutin” EDIT: artighet av Trigger och Freewheel)

Från START skulle du gå ner vägen, och beroende på vad som händer du följa “flow” till ett slutresultat. Flödesscheman är visuella verktyg som kan mer förståe representerar en uppsättning instruktioner som används av datorer. På samma sätt, algoritmer hjälpa göra samma sak med mer matematik-baserade modeller.

Låt oss använda ett diagram för att illustrera de olika sätt som vi kan ge anvisningar.

Vi kan uttrycka denna graf som en förbindelse mellan alla sina poäng. För att återge den här bilden kan vi ge en uppsättning instruktioner till någon annan.

förfarande 1

Vi kan representera detta som en serie punkter, och informationen skulle följa standard form av diagram = {(x1, y1), (x2, y2), …, (xn, yn)}.

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

Det är ganska lätt att rita varje punkt, den ena efter den andra, och ansluta dem till föregående punkt. Dock föreställa sig en graf med tusen poäng eller flera segment alla kommer every vilket sätt. Denna förteckning skulle ha mycket data, eller hur? Och sedan behöva ansluta var och en, en i taget, kan vara en smärta.

metod 2

En annan sak som vi kan göra är att ge en utgångspunkt, lutningen på linjen mellan den och nästa punkt, och ange var att förvänta sig att nästa punkt på standardformuläret av diagrammet = {(startpunkt} [M1 x1, h1 ], …, [mn, xn, hn]}. Här, variabeln “m” representerar lutningen på linjen, “x” representerar riktningen att räkna in (om x eller y), och “h” talar om hur många att räkna i nämnda riktning. Du kan också komma ihåg att rita en punkt efter varje rörelse.

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 kommer att sluta med samma graf. Du kan se att de tre sista villkoren i detta uttryck är samma, så vi kanske kan trimma ner det genom att bara säga “upprepa att tre gånger” på något sätt. Låt oss säga att när du ser variabeln “R” visas, betyder det att upprepa det sista. Vi kan göra det här

graf = {(0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2,5, x, 2], [-3, x, 1], [R = 2]}

Vad händer om de enskilda punkterna inte egentligen ingen roll, och bara själva grafen gör? Vi kan konsolidera dessa tre sista delarna som så

graf = {(0,0), [0, x, 3], [0, y, 3], [1, x, 2], [2,5, x, 2], [-3, x, 3]}

Det förkortar saker och ting lite där de var innan.

metod 3

Låt oss försöka göra detta på ett annat sätt.

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

Här har vi det i rena algebraiska termer. Än en gång, om de punkter själva inte betyder och bara grafen gör, kan vi konsolidera de senaste tre punkter.

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

Nu, vilken metod du väljer beror på dina förmågor. Kanske är du bra med matte och grafer, så att du väljer det sista alternativet. Kanske är du bra på att navigera, så att du väljer det andra alternativet. Inom området för datorer, men du gör många olika typer av uppgifter och datorns förmåga egentligen inte ändra. Därför algoritmer optimerade för de uppgifter de slutföra.

En annan viktig punkt att notera är att varje metod förlitar sig på en nyckel. Varje uppsättning av instruktioner är värdelös om du inte vet vad de ska göra med dem. Om du inte vet att man ska rita varje punkt och anslut prickar, den första uppsättningen av punkter betyder ingenting. Om du inte vet vad varje variabel innebär i den andra metoden kommer du inte vet hur man tillämpar dem, ungefär som nyckeln till ett chiffer. Det viktiga är också en integrerad del av att använda algoritmer, och ofta är nyckeln som finns i samhället eller via en “standard”.

När du hämtar a.zip fil, extrahera du innehållet så att du kan använda allt som är inne i det. Numera kan de flesta operativsystem dyka into.zip filer som om de var normala mappar, gör allt i bakgrunden. På min Windows 95 maskin över ett decennium sedan var jag tvungen att extrahera allt manuellt innan jag kunde se något mer än filnamnen inuti. Det beror på vad som lagras på hårddisken som a.zip fil var inte i en användbar form. Tänk på en utdragbar soffa. När du vill använda den som en säng, måste du ta bort kuddar och vika det, som tar upp mer utrymme. När du inte behöver det, eller om du vill transportera den, kan du vika upp den igen.

Komprimeringsalgoritmer justeras och speciellt optimerad för de typer av filer som de riktar sig till. Ljudformat, till exempel, varje använder en annan väg för att lagra data som när avkodas av audio codec, kommer att ge en ljudfil som liknar den ursprungliga vågformen. För mer information om de skillnad, kolla in vår tidigare artikel, vad är skillnaderna mellan alla som Ljudformat? Förlustfria ljudformat and.zip filer har en sak gemensamt: de båda ger de ursprungliga uppgifterna i sin exakta form efter processen för dekompression. Förstörande audio codec använda andra medel för att spara diskutrymme, såsom trimning frekvenser som inte kan höras av det mänskliga örat och jämna ut vågformen i sektioner för att bli av med någon detalj. I slutändan, medan vi inte kan verkligen höra skillnaden mellan en MP3 och en CD-spår, det finns definitivt ett underskott av information i den förstnämnda.

Algoritmer används också när säkra data eller kommunikationsledningar. Istället för att lagra data så att den använder mindre diskutrymme, det förvaras på ett sätt som är påvisas med andra program. Om någon stjäl din hårddisk och börjar skanna det, kan de plocka upp data även när du tar bort filer, eftersom själva uppgifterna är fortfarande kvar, även om vidarebefordran plats till den är borta. När data krypteras, oavsett lagras inte ser ut vad det är. Det ser oftast slumpmässigt, som om splittringen hade byggt upp över tiden. Du kan också lagra data och få det att verka som en annan typ av fil. Bildfiler och musikfiler är bra för detta, eftersom de kan vara ganska stora utan att dra misstanke, till exempel. Allt detta görs med hjälp av matematiska algoritmer, som tar någon typ av insignal och omvandla den till en annan, mycket specifik typ av utmatning. För mer information om hur kryptering fungerar, ta HTG förklarar: Vad är kryptering och hur fungerar det?

Försök inte att läsa denna första sak på morgonen. Hittade några saker som saknas i min matte. Tata

Borde ha börjat med Boolesk algebra

du arg?

Japp, det är grekiska.

Låter väldigt cool men …. woosh … rakt över mitt huvud är jag rädd. 🙂

Prova denna kanske. Låt oss räkna ut din gas körsträcka. Först hur maj miles körde du? (100). Andra hur många liter gas använde du? (10) Nu matematiska Miles dividerat med gallon (100/10). Du har fått 10 miles till gallon gas. Denna rutin är en mycket grundläggande algoritm.

När man talar om algoritmer, bör du antagligen nämner heuristik. Algoritmer är bevisbart korrekta. Heuristik är “bästa praxis”, eller förhoppningsvis får du en nästan korrekt resultat. Till exempel är A * sökning kallas ofta en algoritm när det är faktiskt en heuristisk.

Jag brukar tänka på programmeringsalgoritmer som recept. Du har din lista över ingredienser (variabler, databaskopplingar, konstanter, osv). Och då har du steg-för-steg-instruktioner om hur man använder dessa ingredienser för att få en önskad slutresultatet (en läcker maträtt, tårta kanske?).

Det har också den bonus som i båda fallen om du missar ett steg, eller gör ett steg fel, kan resultaten mycket väl vara katastrof!

Då du tar enskilda recept och kombinera dem alla tillsammans för att göra en multipel rätters måltid. Och precis som med mat, måste du vara medveten om vad du kombinera tillsammans för att se slutresultatet är tilltalande för kunden.

Hey – Kanske de Araberna var på något eller kanske de var bara uttråkad och letar efter något att göra. Methinks en gammaldags digital calulator är bra enpugh!

Utmärkt artikel, även utan att egentligen läsa matte! Och jag älskar Joe M analogi. Det läggs ännu mer klargörande för dem av oss som kanske vet lite om jävlas med datorer, bit är ingalunda nördar.

Tack.

Tack, jag fick den allmänna idén …

Wow. Detta är ett bra sätt att göra mitt huvud ont. Jag föredrar boolean mig, men jag tror att det är på grund av min elektronik bakgrund. Det är en mycket bra artikel. 1 Internets till Joe M btw. Stora tillägg till artikeln (ursäkta den dåliga matte ordvitsen).

Tack. Det är en trevlig läsning. Nu vet jag lite bättre vad mina Geek-Coder vänner talar om.

Har aldrig varit i New Jersey, fick jag förlorade. Exit från vad? mataffären? eller- kanske New Jersey har dörrar, och vi kommer till New York …

Tack för att du tog tid att förklara det är inte ditt fel jag inte få det ännu hahaha !!!

Utmärkt artikel. Joe M analogi var också bra gjort och tar mysterium av alla dessa ämnen.

Trevligt över förenklad artikeln. Tack Yatri.

Ju mer jag läser du saker ju mer jag tror, ​​din i.q. är toppen, ingen högre, jag förstår inte mycket av det du säger, men, efter att ha läst information från läsarna på punkt jag får en tillräckligt rättvisande bild

tack så mycket

En algoritm är helt enkelt en bro mellan vad vi vet och vad vi vill veta.

Ett krav för en algoritm är att den måste upphöra. Denna subtila punkt används för att bevisa om något är beräkningsbar. Ett operativsystem är ett exempel på något som inte är en algoritm, eftersom den är utformad att oändligt hantera dator processer och resurser. Nu är en extra godbit att prata om vid nästa happy hour mixer. 🙂

Utmärkt inlägg i min mening.

Eller enkelt uttryckt

En algoritm är en exakt regel (eller en uppsättning regler) anger hur man kan lösa några problem.

Reccomended läsning; http: //en.wikipedia.org/wiki/Algorithm; (I matematik och datavetenskap, är en algoritm en effektiv metod uttrycks som en ändlig lista över väldefinierade instruktioner för att beräkna en funktion algoritmer används för beräkning. , databehandling, och automatiserad resonemang.)

Bra artikel, är det en mycket bra introduktion för dem som vill veta.

även om det var från Al Gore rytm eftersom han sade att han hjälpte uppfinna Internet hahahahhahah

Araberna var de mest avancerade matematiker av sin tid och uppfann alla möjliga saker i algebra, lämnade bakom stor arkitektur och litteratur,. Menyoj, författare

Jag fick din artikel och lärt sig några saker.

bra grejer…………

Jag försökte förklara detta koncept till en bearbetningstekniker och en mid nivå chef i morse på min arbetsplats. Jag tror att de har fastnat i en anolog värld av rör och gnistor. Digitala styrkoncept som kan lösa min medarbetare vilda svängningar av behandling svårighet är i sfären av fantasin till denna hantering. Jag önskar att jag kunde ha lagt fram rapporten om algoritmer för att stödja min arguement att hans problem var en fungerande lösning. Jag ska skriva ut ett nuvarande denna information som en uppföljning i morgon när jag kommer på jobbet. Tack för dina synpunkter. Bara en liberal arts widgetmaker …

Påminner mig om en Vremja, enda skillnaden är att det är ett slags verbal algoritm som tar dig från punkt A till punkt B!

Mycket informativ artikel det hjälper dig att förstå vad som egentligen algoritmer och hur de work.It hjälper dig att förstå begreppet väl.

WOW1 Var har jag varit hela mitt liv. 🙂

Förfarande 1 är lätt att förstå. I metod 2, jag försöker fortfarande att räkna ut hur du får från [0, y, 3] [1, x, 2] på den givna diagrammet. De sista 3 [-3, x, 1] jag följer. Vad jag saknar?

Ahh – vänta tills vi börjar prata om Stochastic modeller och Heuristics.:-P

Jag betalade aldrig uppmärksamhet till mina lärare i skolan när det kom till matematik, men numera försöker jag lära mig så mycket som jag möjligen kan (lärt mig Algebra från början för ett år sedan för TAFE inträdesprovet). Så tack för den här artikeln, mycket hjälpsamma och jag kommer att sträva efter att ta sig igenom den över tiden och förhoppningsvis få fram viss kunskap ur det. 🙂

SPF, eller solskyddsfaktor, av solskyddsmedel är representativ för mängden av UV-strålning solskydds segment; ett solskyddsmedel med en SPF rating på 30 kommer att tillåta en / 30. Av UV-strålningen att nå huden (blockering 29 / 30ths, när tillämpas korrekt, från att nå huden). Konventionella solskyddsmedel är utformade för att blockera UVB-strålning medan solskyddsmedel med brett spektrum är avsedda att skydda mot både UVB- och UVA-strålning.