Hjem Personlig finansiering Arbejder med algoritmiske funktioner - dummier

Arbejder med algoritmiske funktioner - dummier

Video: Zeitgeist: Moving Forward (Final Cut) 2024

Video: Zeitgeist: Moving Forward (Final Cut) 2024
Anonim

En funktion i matematik er simpelthen en måde at kortlægge nogle input til et svar. Udtrykt på en anden måde er en -funktion en transformation (baseret på matematikoperationer), der omdanner (kort) dit input til et svar.

For bestemte værdier for input (normalt betegnet med bogstaverne x eller n), har du et svar svarende ved hjælp af matematikken, der definerer funktionen. For eksempel fortæller en funktion som f (n) = 2 n, at når din indtastning er et tal n, er tallet n ganget med 2.

Ved hjælp af størrelsen af ​​indgangen er det fornuftigt, da dette er en tidskritisk alder, og folks liv er proppet med en voksende mængde data. At gøre alt til en matematisk funktion er lidt mindre intuitiv, men en funktion, der beskriver, hvordan en algoritme relaterer sin løsning til mængden af ​​data, den modtager, er noget, du kan analysere uden specifik hardware- eller software support. Det er også nemt at sammenligne med andre løsninger, i betragtning af størrelsen af ​​dit problem. Analyse af algoritmer er virkelig et tankegangskoncept, fordi det reducerer en kompleks række trin i en matematisk formel.

Desuden er en analyse af algoritmerne ikke engang interesseret i at definere funktionen nøjagtigt. Hvad du virkelig vil gøre, er at sammenligne en målfunktion med en anden funktion. Disse sammenligningsfunktioner vises inden for et sæt foreslåede funktioner, der udfører dårligt, når de står i modsætning til målalgoritmen. På denne måde behøver du ikke at tilslutte tal til funktioner med større eller mindre kompleksitet; I stedet beskæftiger du dig med enkle, præmade og velkendte funktioner. Det kan lyde groft, men det er mere effektivt og svarer til at klassificere algoritmernes præstation i kategorier, i stedet for at opnå en præcis præstationsmåling.

Sættet med generelle funktioner kaldes Big O notation, og du støder ofte på dette lille sæt funktioner (i parentes og forud for en kapital O >) bruges til at repræsentere algoritmernes ydeevne. Figuren viser analysen af ​​en algoritme. Et kartesisk koordinatsystem kan repræsentere sin funktion som målt ved RAM-simulering, hvor abscissa (x-koordinaten) er størrelsen af ​​indgangen og ordinaten (y-koordinaten) er dens resulterende antal operationer. Du kan se tre kurver repræsenteret. Indgangsstørrelse betyder noget. Men kvaliteten er også vigtig (for eksempel når man bestiller problemer, er det hurtigere at bestille et input, der allerede er næsten bestilt).Følgelig viser analysen det værste tilfælde, f 1 (n), et gennemsnitligt tilfælde, f 2 (n) og et bedste tilfælde, f 3 (n). Selvom det gennemsnitlige tilfælde kan give dig en generel ide, er det værste, at du virkelig bekymrer dig om, fordi problemer kan opstå, når din algoritme kæmper for at nå frem til en løsning. Big O-funktionen er den, der efter en bestemt værdi

n0 (tærsklen for at betragte en stor indgang) altid resulterer i et større antal operationer, der får samme indgang end den værste tilfælde > f1 . Således er Big O-funktionen endnu mere pessimistisk end den der repræsenterer din algoritme, så uanset kvaliteten af ​​input kan du være sikker på, at tingene ikke kan blive værre end det. Kompleksiteten af ​​en algoritme i tilfælde af bedste, gennemsnitlige og værste input-tilfælde. Mange mulige funktioner kan resultere i dårligere resultater, men valget af funktioner, der tilbydes af Big O notationen, som du kan bruge, er begrænset, fordi formålet er at forenkle kompleksitetsmåling ved at foreslå en standard. Derfor indeholder dette afsnit kun de få funktioner, der er en del af Big O notationen. Følgende liste beskriver dem i stigende rækkefølge af kompleksitet:

Konstant kompleksitet O (1):

Samme tid, uanset hvor meget input du giver. I sidste ende er det et konstant antal operationer, uanset hvor lang tid inputdataene er. Dette niveau af kompleksitet er ret sjældent i praksis.

  • Logaritmisk kompleksitet O (log n): Antallet af operationer vokser ved en langsommere hastighed end indgangen, hvilket gør algoritmen mindre effektiv med små indgange og mere effektiv med større. En typisk algoritme for denne klasse er binær søgning.
  • Lineær kompleksitet O (n): Operationer vokser med input i et 1: 1 forhold. En typisk algoritme er iteration, som er, når du scanner input en gang og anvender en operation til hvert element af det.
  • Linearitmisk kompleksitet O (n log n): Kompleksitet er en blanding mellem logaritmisk og lineær kompleksitet. Det er typisk for nogle smarte algoritmer, der bruges til at bestille data, såsom Mergesort, Heapsort og Quicksort.
  • Kvadratisk kompleksitet O (n 2
  • ): Operationer vokser som et firkant af antallet af indgange. Når du har en iteration inde i en anden iteration (indlejrede iterationer, i datalogi), har du kvadratisk kompleksitet. For eksempel har du en liste over navne, og for at finde de mest lignende, sammenligner du hvert navn med alle de andre navne. Nogle mindre effektive ordningsalgoritmer præsenterer sådan kompleksitet: boble sortering, valg sortering og insertion sortering. Dette niveau af kompleksitet betyder, at dine algoritmer kan løbe i timer eller endda dage, før de når en løsning. Kubisk kompleksitet O (n 3
  • ): Operationer vokser endnu hurtigere end kvadratisk kompleksitet, fordi nu har du flere indlejrede iterationer. Når en algoritme har denne rækkefølge af kompleksitet, og du skal behandle en beskeden mængde data (100.000 elementer), kan din algoritme løbe i årevis.Når du har en række operationer, der er en effekt af input, er det almindeligt at henvise til algoritmen som kører i polynomisk tid. Eksponentiel kompleksitet O (2 n
  • ): Algoritmen tager to gange antallet af tidligere operationer for hvert nyt element tilføjet. Når en algoritme har denne kompleksitet, kan selv små problemer tage for evigt. Mange algoritmer gør udtømmende søgninger har eksponentiel kompleksitet. Det klassiske eksempel på dette niveau af kompleksitet er imidlertid beregningen af ​​Fibonacci-tal. Faktisk kompleksitet O (n!): Et ægte mareridt af kompleksitet på grund af det store antal mulige kombinationer mellem elementerne. Bare forestil dig: Hvis din indtastning er 100 objekter, og en operation på din computer tager 10
  • -6 sekunder (en rimelig hastighed for hver computer, i dag), skal du bruge omkring 10 140 år at fuldføre opgaven med succes (en umulig tid siden universets alder skønnes at være 10 14 år). Et kendte factorial kompleksitetsproblem er det rejseforhandlerproblem, hvor en sælger skal finde den korteste rute for at besøge mange byer og komme tilbage til startbyen.
Arbejder med algoritmiske funktioner - dummier

Valg af editor

Hvad er nyt i Microsoft Word 2016? - dummies

Hvad er nyt i Microsoft Word 2016? - dummies

Udgivelsen af ​​Microsoft Word i 2016 er funktionel pakket og kan prale af evnen til at forenkle arbejdsgange og forene arbejdsgrupper. Hvad det betyder for dig er, at det er et meget lettere produkt at bruge i forhold til tidligere versioner. Med funktionelle ændringer, der er indbygget i knapper og faner af Word 2016s båndformede proceslinje, har den ...

Word 2010 Tastaturgenveje - Dummies

Word 2010 Tastaturgenveje - Dummies

Word 2010 tilbyder en række nyttige tastaturgenveje til hurtigt at udføre opgaver. Her er nogle genveje til almindelig Word-formatering, redigering og fil- og dokumentopgaver. Word 2010 Formatering Genveje Kommando Genvej Bånd Placering Fed Ctrl + B Startside Fane, Skrifttype Gruppe Kursiv Ctrl + I Startside, Skriftgruppe Understrege Ctrl + U Startside Fane, Skriftgruppe Center Ctrl + E ...

Word 2007 For Dummies Cheat Sheet - dummies

Word 2007 For Dummies Cheat Sheet - dummies

Word 2007 ser anderledes ud, men tilbyder stadig de praktiske Word hæfteklammer som f.eks. tastaturgenveje til at hjælpe dig med at oprette, formatere, indsætte ting i og flytte gennem dine Word-dokumenter. Og Word 2007 tilbyder også et par nye funktioner, der hjælper dig med at håndtere din tekstbehandling med lethed.

Valg af editor

ASVAB Montering af objekter Subtest: Shapes - dummies

ASVAB Montering af objekter Subtest: Shapes - dummies

Mange mennesker kan finde den anden type montering af objekter problem på ASVAB lettere end forbindelsesproblemerne. Denne type problem er meget som et puslespil, medmindre det ikke resulterer i et billede af Frihedsgudinden eller et kort over USA. Der er også en heck of a ...

ASVAB Aritmetisk Reasoning Subtest: Viser Sammenligninger med Ratioer - Dummies

ASVAB Aritmetisk Reasoning Subtest: Viser Sammenligninger med Ratioer - Dummies

Du skal vide, hvordan du arbejde med forhold for den aritmetiske begrundelse subtest af ASVAB. Et forhold viser et forhold mellem to ting. For eksempel, hvis Margaret investerede i hendes tatoveringslokale i forholdet 2: 1 (eller 2 til 1) til hendes forretningspartner Julie, satte Margaret $ 2 for hver ...

ASVAB Auto & Shop Information Undertest: Drilling, Punching og Gouging Tools - dummies

ASVAB Auto & Shop Information Undertest: Drilling, Punching og Gouging Tools - dummies

Nej, det handler ikke om hånd-til-hånd kamp træning fra grundlæggende træning. Imidlertid vil ASVAB teste din viden om, hvor praktisk du er med boring, stansning og gouging-værktøjer. Masters i butikskunst gør ofte huller i det materiale, de arbejder med for at opbygge det perfekte fuglehus (eller hvad de arbejder på). ...

Valg af editor

EMT-eksamen: Sådan arbejder du med et team under et nødsituation

EMT-eksamen: Sådan arbejder du med et team under et nødsituation

Arbejder helt alene som en EMT er ekstremt sjælden. Selv under disse omstændigheder vil du sandsynligvis interagere med andre sundhedspleje- og offentlige sikkerhedsudbydere på et eller andet tidspunkt under et opkald. Mere sandsynligt vil du fungere som medlem af et hold. Det kan være en enkelt partner, et brandmandsbesætningsmedlem eller endda en nødsituation ...

EMT-eksamen: Sådan dokumenterer du dine tilfælde - dummier

EMT-eksamen: Sådan dokumenterer du dine tilfælde - dummier

Til eksamen og i feltet EMT er forpligtet til at dokumentere, hvad du observerede om patienten og miljøet, de resultater, du vurderede, den omhu du gav, og eventuelle ændringer i patientens tilstand, mens du var i din pleje. Dokumentation kan ske enten på papirformularer eller elektronisk med en computer, bærbar computer, ...