Huis Persoonlijke financiën Werken met algoritmische functies - dummies

Werken met algoritmische functies - dummies

Video: Hoe Werkt Het Algoritme Achter Tools Zoals JungleScout? 2024

Video: Hoe Werkt Het Algoritme Achter Tools Zoals JungleScout? 2024
Anonim

Een functie in de wiskunde is eenvoudigweg een manier om sommige invoer naar een antwoord in kaart te brengen. Op een andere manier uitgedrukt, is een -functie een transformatie (gebaseerd op wiskundige bewerkingen) die uw invoer transformeert (toewijst) tot een antwoord.

Voor bepaalde invoerwaarden (meestal aangeduid met de letters x of n), hebt u een overeenkomstig antwoord met de wiskunde die de functie definieert. Een functie als f (n) = 2 n vertelt u dat wanneer uw invoer een getal n, is, uw antwoord is het getal n vermenigvuldigd met 2.

Het is logisch om de grootte van de invoer te gebruiken, aangezien dit een tijdkritische periode is en het leven van mensen vol zit met een groeiende hoeveelheid gegevens. Alles een wiskundige functie maken is iets minder intuïtief, maar een functie die beschrijft hoe een algoritme zijn oplossing relateert aan de hoeveelheid gegevens die het ontvangt, is iets dat je kunt analyseren zonder specifieke hardware- of softwaresteun. Het is ook eenvoudig te vergelijken met andere oplossingen, gezien de omvang van uw probleem. Analyse van algoritmen is echt een verbluffend concept, omdat het een complexe reeks stappen reduceert tot een wiskundige formule.

Bovendien is een analyse van algoritmen meestal niet eens geïnteresseerd in het precies definiëren van de functie. Wat u echt wilt doen, is een doelfunctie vergelijken met een andere functie. Deze vergelijkingsfuncties verschijnen binnen een reeks voorgestelde functies die slecht presteren in tegenstelling tot het doelalgoritme. Op deze manier hoeft u geen nummers aan te sluiten in functies met een grotere of kleinere complexiteit; in plaats daarvan behandel je eenvoudige, vooraf bekende en bekende functies. Het klinkt misschien ruw, maar het is effectiever en lijkt op het classificeren van de prestaties van algoritmen in categorieën, in plaats van het verkrijgen van een exacte prestatiemeting.

De reeks gegeneraliseerde functies wordt Big O genoemd en u komt vaak deze kleine reeks functies tegen (tussen haakjes gezet en voorafgegaan door een hoofdletter O >) worden gebruikt om de prestaties van algoritmen weer te geven. De afbeelding toont de analyse van een algoritme. Een cartesisch coördinatensysteem kan de functie vertegenwoordigen zoals gemeten door RAM-simulatie, waarbij de abscis (de x-coördinaat) de grootte van de invoer is en de ordinaat (de y-coördinaat) resulterend aantal operaties. U ziet drie curven weergegeven. Invoerformaat is van belang. Kwaliteit is echter ook van belang (bijvoorbeeld bij het bestellen van problemen is het sneller om een ​​invoer te bestellen die al bijna is besteld).Bijgevolg vertoont de analyse het slechtste geval, f 1 (n), een gemiddeld geval f 2 (n), en een beste case, f 3 (n). Hoewel de gemiddelde case u een algemeen idee zou kunnen geven, is het belangrijkste dat u echt belangrijk vindt, omdat er problemen kunnen optreden wanneer uw algoritme moeite heeft om een ​​oplossing te bereiken. De Big O-functie is de functie die, na een bepaalde

n0 waarde (de drempelwaarde voor het beschouwen van een grote invoer), altijd resulteert in een groter aantal bewerkingen met dezelfde invoer dan de slechtst mogelijke functie > f1 . De Big O-functie is dus zelfs pessimistischer dan degene die je algoritme vertegenwoordigt, zodat je, ongeacht de kwaliteit van de invoer, er zeker van kunt zijn dat de dingen niet erger kunnen worden. Complexiteit van een algoritme in geval van beste, gemiddelde en slechtste invoer. Veel mogelijke functies kunnen resulteren in slechtere resultaten, maar de keuze van de functies die worden aangeboden door de Big O-notatie die u kunt gebruiken, is beperkt omdat het doel is om de complexiteitsmeting te vereenvoudigen door een standaard voor te stellen. Daarom bevat dit gedeelte slechts enkele functies die deel uitmaken van de Big O-notatie. De volgende lijst beschrijft ze in groeiende volgorde van complexiteit:

Constante complexiteit O (1):

Dezelfde tijd, ongeacht hoeveel input u levert. Uiteindelijk is het een constant aantal bewerkingen, ongeacht hoe lang de invoergegevens zijn. Deze mate van complexiteit is in de praktijk vrij zeldzaam.

  • Logaritmische complexiteit O (log n): Het aantal bewerkingen groeit langzamer dan de invoer, waardoor het algoritme minder efficiënt is met kleine invoer en efficiënter met grotere. Een typisch algoritme van deze klasse is de binaire zoekopdracht.
  • Lineaire complexiteit O (n): De bewerkingen nemen toe met de invoer in een verhouding van 1: 1. Een typisch algoritme is iteratie, dat is wanneer u de invoer eenmaal scant en een bewerking toepast op elk element ervan.
  • Lineairithmische complexiteit O (n log n): Complexiteit is een mix tussen logaritmische en lineaire complexiteit. Het is typerend voor enkele slimme algoritmen die worden gebruikt om gegevens te ordenen, zoals Mergesort, Heapsort en QuickSort.
  • Kwadratische complexiteit O (n 2
  • ): Bewerkingen groeien als een vierkant van het aantal ingangen. Wanneer je één iteratie hebt binnen een andere iteratie (geneste iteraties, in de informatica), heb je een kwadratische complexiteit. U hebt bijvoorbeeld een lijst met namen en om de meest vergelijkbare te vinden, vergelijkt u elke naam met alle andere namen. Sommige minder efficiënte ordeningsalgoritmen vertonen een dergelijke complexiteit: bubbelsortering, selectiesortering en invoegtypen. Dit niveau van complexiteit betekent dat uw algoritmen uren of zelfs dagen kunnen duren voordat ze een oplossing bereiken. Kubieke complexiteit O (n 3
  • ): Bewerkingen groeien zelfs sneller dan kwadratische complexiteit omdat u nu meerdere geneste iteraties hebt. Wanneer een algoritme deze volgorde van complexiteit heeft en u een bescheiden hoeveelheid gegevens (100, 000 elementen) moet verwerken, kan uw algoritme jaren duren.Wanneer u een aantal bewerkingen hebt die de input zijn, is het gebruikelijk om te verwijzen naar het algoritme dat loopt in polynomiale tijd. Exponentiële complexiteit O (2 n
  • ): Het algoritme neemt tweemaal het aantal vorige bewerkingen voor elk toegevoegd nieuw element. Wanneer een algoritme deze complexiteit heeft, kunnen zelfs kleine problemen voor altijd duren. Veel algoritmen die uitputtend zoeken, hebben een exponentiële complexiteit. Het klassieke voorbeeld voor dit niveau van complexiteit is echter de berekening van Fibonacci-getallen. Factorische complexiteit O (n!): Een echte nachtmerrie van complexiteit vanwege het grote aantal mogelijke combinaties tussen de elementen. Stelt u zich eens voor: als uw invoer 100 objecten is en een bewerking op uw computer 10
  • -6 seconden kost (een redelijke snelheid voor elke computer, tegenwoordig), heeft u ongeveer 10 140 jaar nodig om de taak met succes te voltooien (een onmogelijke hoeveelheid tijd sinds de ouderdom van het universum wordt geschat op 10 14 jaar). Een beroemd facetcomplexiteitsprobleem is het reizende verkoopprobleem, waarbij een verkoper de kortste route moet vinden om vele steden te bezoeken en terug te komen naar de startstad.
Werken met algoritmische functies - dummies

Bewerkers keuze

Tien Helpbronnen voor Junos OS - dummies

Tien Helpbronnen voor Junos OS - dummies

Dit is een top-tien lijst met bronnen die u moet zoeken meer informatie over softwarebewerkingen, training en ondersteuning voor Junos - alle extra details die u mogelijk nodig heeft om Junos OS te kunnen configureren en bedienen in uw eigen netwerkimplementaties. CLI Help-commando's Bent u op zoek naar meer achtergrondinformatie over hoe een bepaalde functie ...

De functie van de drie vlakken van Junos netwerk OS - dummies

De functie van de drie vlakken van Junos netwerk OS - dummies

De architectuur van de Junos opererende systeem verdeelt de functies van besturing, services en doorsturen op verschillende niveaus. Elk van de vlakken van Junos OS biedt een kritieke set van functionaliteit in de werking van het netwerk. Besturingsvlak van het Junos-netwerkbesturingssysteem (NOS) Alle functies van het besturingsvlak lopen op ...

De basisprincipes van BGP-routebealing - dummy's

De basisprincipes van BGP-routebealing - dummy's

Het configureren van Border Gateway Protocol (BGP) kan nogal lastig zijn, vooral met grote aantallen peersessies die handmatig moeten worden geconfigureerd. In feite kan in een groot netwerk de full-mesh-vereiste voor IBGP een provisioning-nachtmerrie zijn. BGP's antwoord op de IBGP-paring-configuratie-nachtmerrie die het volledige maaswerk is, wordt routeberefening genoemd. Route ...

Bewerkers keuze

Noodzakelijke elementen voor SEO om hoge trefwoorden te krijgen - dummies

Noodzakelijke elementen voor SEO om hoge trefwoorden te krijgen - dummies

Als de allerbeste locatie op het web staat op de pagina een van de zoekmachines, je moet de SEO-elementen kennen die je daar kunnen brengen. Een goede plek om te beginnen is met zoekwoorden. Zoekmachines gebruiken geavanceerde processen om zoekwoordgebruik en andere factoren te categoriseren en analyseren om erachter te komen ...

Persberichten als bron van SEO-inhoud - dummies

Persberichten als bron van SEO-inhoud - dummies

Het leuke aan persberichten is dat u ze zonder toestemming op uw website kunt gebruiken, en sommige zullen al voor de zoekmachine zijn geoptimaliseerd. Het doel van een persbericht is om het uit te sturen en te zien wie het ophaalt. U hoeft geen contact op te nemen met de eigenaar van het persbericht, omdat ...

Kies een domeinnaam die geoptimaliseerd is voor zoekmachines - dummies

Kies een domeinnaam die geoptimaliseerd is voor zoekmachines - dummies

Zelfs de domeinnaam van uw site moet geoptimaliseerd voor zoekmachines. Zoekmachines lezen uniforme resource locators (URL's), op zoek naar sleutelwoorden erin. Bijvoorbeeld als u een website heeft met de domeinnaam knaagdierracen. com en iemand zoekt Google op knaagdierenraces, Google ziet rodent-racing als een wedstrijd; omdat er een streepje verschijnt tussen de twee ...

Bewerkers keuze

Praxis Elementair onderwijs Examen-Economie - dummies

Praxis Elementair onderwijs Examen-Economie - dummies

U zult enkele basisconcepten van de economie voor de Praxis moeten kennen Elementair onderwijs examen. Elementaire economie onderzoekt de wens voor, de productie van en de verkoop en het gebruik van geld, zowel lokaal als wereldwijd. Het onderwijzen van economie omvat concepten zoals behoeften versus behoeften, kosten en meer tot nadenken stemmende onderwerpen, zoals de volgende: ...

Praxis Elementair onderwijs voor Dummy's Cheat Sheet - dummies

Praxis Elementair onderwijs voor Dummy's Cheat Sheet - dummies

Het Praxis basisonderwijs: Curriculum, instructie en beoordeling examen (5017) bestrijkt een breed scala van wat u moet weten over basisonderwijs. Als u het Praxis Elementary Education: Content Knowledge-examen (5018) neemt, moet u zich ervan bewust zijn dat het de dekking beperkt tot de inhoud van de vier hoofdonderwerpen die een elementaire leraar is ...

Praxis Core For Dummies Cheat Sheet - dummies

Praxis Core For Dummies Cheat Sheet - dummies

Voordat je te opgewonden raakt, begrijp dat de informatie die volgt niet klopt eigenlijk niet over het bedriegen van de Praxis. Het gaat echt meer om de meest efficiënte manieren om je voor te bereiden op het examen. Maar "voorbereidingsblad" heeft niet helemaal dezelfde reden. Trouwens, vals spelen is niet nodig als je weet wat je aan het doen bent, en ...