FAGPORTALEN

Rekursion

Programmering B · HTX · B-niveau · Datastrukturer og algoritmer

💻 Rekursion

Rekursion: en funktion der kalder sig selv.

Grundstruktur:

1. Basis-case: stop-betingelse der ALTID skal eksistere

2. Rekursivt kald: kalder sig selv med et mindre problem

Eksempel — fakultet:

```python

def fakultet(n: int) -> int:

if n <= 1: # basis-case

return 1

return n * fakultet(n - 1) # rekursivt kald

fakultet(5) # = 5 4 3 2 1 = 120

```

Fibonacci (naivt — eksponentiel tid O(2^n)):

```python

def fib_naiv(n):

if n <= 1: return n

return fib_naiv(n-1) + fib_naiv(n-2)

```

Fibonacci med memoization (O(n)):

```python

from functools import lru_cache

@lru_cache(maxsize=None)

def fib(n):

if n <= 1: return n

return fib(n-1) + fib(n-2)

```

Stack overflow: for dyb rekursion → Python max ~1000 niveauer.

Når er rekursion godt?

Rekursion vs. iteration: rekursion er ofte mere læsbar, iteration er typisk hurtigere.

Læringsmål

Sådan kan du arbejde med emnet

Træningsforslag

Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.

Prøv Fagportalen gratis

🤖 Denne side er skrevet med kunstig intelligens og fagligt gennemgået af Fagportalen, som har det redaktionelle ansvar. Finder du en fejl, så skriv til support@fagportalen.dk.