Hjem Personlig finansiering Simulering Brug af abstrakte maskiner med algoritmer - dummier

Simulering Brug af abstrakte maskiner med algoritmer - dummier

Video: Computational Thinking - Computer Science for Business Leaders 2016 2025

Video: Computational Thinking - Computer Science for Business Leaders 2016 2025
Anonim

Jo flere operationer en algoritme kræver, jo mere kompleks er den. Kompleksitet er et mål for algoritme effektivitet i form af tidsforbrug, fordi hver operation tager noget tid. På grund af det samme problem er komplekse algoritmer generelt mindre gunstige end simple algoritmer, fordi komplekse algoritmer kræver mere tid.

Tænk på de tidspunkter, hvor udførelseshastigheden gør forskellen, som f.eks. I medicinsk eller finansiel sektor, eller når du flyver på automatisk pilot på et fly eller rumraket. Måling af algoritme kompleksitet er en udfordrende opgave, selv om det er nødvendigt, hvis du vil anvende den rigtige løsning. Den første måle teknik bruger abstrakte maskiner som Random Access Machine (RAM).

RAM står også for Random Access Memory, som er den interne hukommelse, som din computer bruger, når du kører programmer. Selvom det bruger samme akronym, er en tilfældig adgangsmaskine noget helt anderledes.

Abstrakte maskiner er ikke rigtige computere, men teoretiske, computere, der forestiller sig i deres funktion. Du bruger abstrakte maskiner til at overveje, hvor godt en algoritme ville arbejde på en computer uden at teste den på den rigtige ting, men bundet af den type hardware, du ville bruge. En RAM-computer udfører grundlæggende aritmetiske operationer og interagerer med information i hukommelsen, det er alt. Hver gang en RAM-computer gør noget, tager det et tidstrin (en tidsenhed). Når du vurderer en algoritme i en RAM-simulering, tæller du tidstrin ved hjælp af følgende procedure:

  1. Tæl hver enkel operation (aritmetiske) som et tidstrin.
  2. Bryd komplekse operationer til simple aritmetiske operationer og tæl tidsteg som defineret i trin 1.
  3. Tæl alle dataadgang fra hukommelsen som en gangstrin.

For at udføre denne bogføring, skriver du en pseudokodeversion af din algoritme og udfører disse trin ved hjælp af papir og blyant. I sidste ende er det en simpel tilgang baseret på en grundlæggende ide om, hvordan computere fungerer, en nyttig tilnærmelse, som du kan bruge til at sammenligne løsninger uanset maskinens strøm og hastighed eller det programmeringssprog, du bruger.

Brug af en simulation er forskellig fra at køre algoritmen på en computer, fordi du bruger en standard og foruddefineret indgang. Reelle computer målinger kræver, at du kører koden og verificerer den tid, der kræves for at køre den. Kørselskode på en computer er faktisk en benchmark, en anden form for effektivitetsmåling, hvor du også tegner for applikationsmiljøet (såsom den anvendte hardware og softwareimplementeringen).Et benchmark er nyttigt, men mangler generalisering. Overvej f.eks., Hvordan nyere hardware hurtigt kan udføre en algoritme, der tog aldre på din tidligere computer.

Simulering Brug af abstrakte maskiner med algoritmer - dummier

Valg af editor

Microsoft Project 2010 Genvejstaster - dummies

Microsoft Project 2010 Genvejstaster - dummies

Microsoft Project 2010 maksimerer effektiviteten, når du administrerer projekter - men også genvejstaster i Project 2010 din tid på tastaturet: Her er nogle genvejstaster, du vil bruge hele tiden, når du bygger og arbejder med en projektplan. Indtastning af tastetryk Indsæt Indsætter ny opgave Ctrl + K Indsætter hyperlink F7 Starter stavekontrol Alt + F10 Tildeler ressourcer ...

Hvordan man ændrer gridlines i Project 2016 - dummies

Hvordan man ændrer gridlines i Project 2016 - dummies

Flere visninger i Project 2016 inkluderer gridlines for at angive visse elementer, f.eks. en pause mellem uger eller status dato (det vil sige den dato, hvor der er sporet fremskridt på et projekt). Disse linjer hjælper en person med at læse planen for at skelne mellem tidsintervaller eller brud på information; For eksempel kan netlinjer være ...

Projekt 2016 AutoFilter-funktion - dummier

Projekt 2016 AutoFilter-funktion - dummier

Projekt 2016 AutoFilter-funktionen er som standard tændt for alle nye tidsplanfiler. Pile vises i kolonneoverskrifterne i det viste ark. Når du klikker på pilen i kolonnen Ressourcenavne, er navnet på hver ressource, der er tildelt opgaver i projektet, angivet i alfabetisk rækkefølge sammen med ...

Valg af editor

Netværksadministration: Windows Command Omdirigering og piping - dummies

Netværksadministration: Windows Command Omdirigering og piping - dummies

Omdirigering og piping af Windows-kommandoer er relaterede teknikker. Omdirigering giver dig mulighed for at angive en alternativ destination for output, der vil blive vist med en kommando eller en alternativ kilde til input, der skal indtastes i en kommando. Du kan f.eks. Gemme resultaterne af en kommando ipconfig / all til en fil ved navn myconfig. txt ...

Netværksadministration: VPN Security - dummies

Netværksadministration: VPN Security - dummies

Udtrykket tunnel er nogle gange brugt til at beskrive en VPN, fordi VPN'en skaber en sikker tunnel mellem to steder, som kun kan indtastes fra begge ender. De data, der bevæger sig gennem tunnelen fra den ene ende til den anden, er sikre, så længe det er inden for tunnelen - det vil sige inden for ...

Netværksadministration: Windows Miljøvariabler - dummies

Netværksadministration: Windows Miljøvariabler - dummies

Windows-kommandoskallen giver flere miljøvariabler til kommandoer. Miljøvariabler begynder og slutter med procent tegn. Du kan bruge en miljøvariabel overalt i en kommando. For eksempel viser C:> echo% OS%, der kører på% PROCESSOR_IDENTIFIER% en linje som denne: Windows_NT kører på en x86 Familie 15 Model 2 Stepping 8, ...

Valg af editor

Sådan bruger du arv i PHP med objektorienteret programmering - dummier

Sådan bruger du arv i PHP med objektorienteret programmering - dummier

Objektorienteret programmering i PHP har en anden funktion, der gør det meget nyttigt til store projekter. Mange objekter er relateret til hinanden, og du kan bruge et familietræforhold til at forenkle din programmering. Hvordan man bygger en critter baseret på en anden critter Der er en ny critter i byen. Denne har den samme grundlæggende ...

Sådan bruges PHP til at lave en switch til HTML5 og CSS3 Programmering - dummies

Sådan bruges PHP til at lave en switch til HTML5 og CSS3 Programmering - dummies

Du kører ofte over en situation i HTML5 og CSS3 programmering, hvor du har et udtryk, der kan have mange mulige værdier. Du kan altid bruge strukturen til at klare denne situation, men PHP leverer en anden interessant mulighed. Koden til dette program anvender omskifterstrukturen. Tag et kig på, hvordan det er gjort: