Huis Persoonlijke financiën A Taste of Recursion - dummies

A Taste of Recursion - dummies

Video: OCAML Tutorial 13/33: A Word on Recursion and Recursive Functions 2024

Video: OCAML Tutorial 13/33: A Word on Recursion and Recursive Functions 2024
Anonim

Recursie is een groot, eng woord dat je vaak hoort over programmeren, vooral het frustrerende soort van programmeren dat ze op de universiteit doceren. Hoewel het een eenvoudig concept is om te beschrijven, is het echt een mind-blower als het gaat om het begrijpen hoe recursie werkt. De meeste mensen accepteren het gewoon en gaan verder. Niet hier!

Recursie is in feite het proces waarbij een functie zichzelf aanroept. Bijvoorbeeld:

void funct (int x) {funct (x);}

In dit stuk code zie je een verschrikkelijk voorbeeld van een recursieve functie, maar het dient hier illustratieve doelen: de functie () functie roept zichzelf aan. Dat is recursie. Wat er in dit voorbeeld gebeurt, is eigenlijk een eindeloze lus, en dankzij een technische iets-of-anders, de stack pointe r , wordt de computer uiteindelijk vastgelopen. Maar het is slechts een illustratie.

Voor recursie om te werken, moet de functie een bailout-conditie hebben, net als een lus. Daarom moet de waarde die is doorgegeven aan de recursieve functie of de geretourneerde waarde, worden getest. Hier is een beter voorbeeld van een recursieve functie:

ongeldige recursie (int x) {if (x == 0) return; else {puts ("Boop!"); recursion (- x);}}

De functie recursion () accepteert de waarde x . Als x gelijk is aan nul, wordt de functie geblokkeerd. Anders wordt de functie opnieuw aangeroepen, maar wordt de waarde x verlaagd. De operator voor het verlagen van het prefix wordt gebruikt, zodat de waarde x wordt verminderd voordat de oproep wordt gedaan.

De functie sample recursion () spuwt in principe de tekst Boop! een bepaald aantal keren. Dus als recursie () wordt aangeroepen met de waarde 10, wordt die tekst tien keer weergegeven.

Het krankzinnige deel over recursie is dat de functie zichzelf blijft noemen en zich strakker en strakker wikkelt alsof het een spiraal is. In het voorgaande voorbeeld wikkelt de voorwaarde x == 1 uiteindelijk die bochtige puinhoop af, steeds meer terugtrekkend totdat de functie is voltooid.

De volgende code toont een volledig programma met de functie sample recursion ().

#omvat lege recursie (int x); int main () {recursion (10); return (0);} void recursion (int x) {if (x == 0) return; else {puts ("Boop!"); recursie (- x);}}

Een veel voorkomende demonstratie van recursie is een faculteit-functie. De faculteit is het resultaat van het vermenigvuldigen van een waarde met elk van de positieve gehele getallen. Bijvoorbeeld:

4! = 4 × 3 × 2 × 1

Het resultaat van deze faculteit is 24. De computer kan deze berekening ook uitvoeren door een lus te implementeren of een recursieve functie te creëren.Hier is zo'n functie:

int-factor (int x) {if (x == 1) return (x); else return (x * faculteit (x-1));}

Zoals bij de andere recursieve functies bevat de functie faculteit () een exitvoorwaarde: x == 1. Anders wordt de functie opnieuw aangeroepen met één minder dan de huidige waarde van x . Maar alle actie vindt plaats met de retourwaarden.

A Taste of Recursion - 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 ...