Vad är rekursivt?

I datorprogrammering beskriver termen rekursiv en funktion eller metod som upprepade gånger beräknar en mindre del av sig själv för att komma fram till slutresultatet. Det liknar iteration, men istället för att upprepa en uppsättning operationer uppnår en rekursiv funktion upprepning genom att hänvisa till sig själv i sin egen definition. Även om begreppet rekursiv programmering kan vara svår att förstå initialt, kan mastering det vara mycket användbart. Rekursion är ett av de grundläggande verktygen för datavetenskap.

Ett klassiskt exempel är den rekursiva metoden för att beräkna fakta av ett tal. Faktorn av ett heltal n, som är skrivet som n!, är resultatet av att multiplicera n med alla positiva heltal mindre än n. Till exempel 3! = 3 x 2 x 1, vilket resulterar i 6 och 4! = 4 x 3 x 2 x 1, vilket resulterar i 24. Ett effektivt sätt att beräkna en factorial är att använda en rekursiv funktion.

Nedan är ett exempel på en rekursiv faktoriell funktion som skrivs i JavaScript.

funktion faktor (n) {

returnera (n === 0)? 1: n * factorial (n-1);

}

Som du kan se är en del av definitionen av funktionen factorial resultatet av factorial utfört på ett mindre heltal. Genom att ringa sig själv kan den multiplicera numret med varje positivt tal mindre än det och sedan returnera det slutliga resultatet. Rekursiva funktioner kan vara användbara i andra beräkningar, till exempel att beräkna Fibonacci-nummer eller den största gemensamma divisorn.

Användning av rekursiv logik kan ha vissa nedgångar, inklusive skapandet av en oändlig loop i programmering. Av detta skäl garanterar du att det finns ett flyktillstånd (som ett gör tills) i programmeringen hjälper till att minska, om inte eliminera, chansen att en ändlös slinga uppstår. Om en oändlig slinga uppstår kan det leda till att programmet använder mycket minne på en dator och kan orsaka att programmet, operativsystemet eller datorn slutar fungera.

Escape, Function, Loop, Programmeringsvillkor