FAGPORTALEN

Rekursion og memoization

Kommunikation og IT A · HTX · A-niveau · Avanceret programmering

💻 Rekursion og memoization

Rekursion er en funktion der kalder sig selv. Kræver: (1) basistilfælde der stopper rekursionen og (2) rekursivt trin der reducerer problemet.

```python

def fib(n):

if n <= 1: return n # basistilfælde

return fib(n-1) + fib(n-2) # rekursivt trin

```

Problem: fib(40) beregner de samme delproblemer milliarder af gange → O(2ⁿ).

Memoization cacher beregnede resultater:

```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)

Nu O(n) i stedet for O(2ⁿ)

```

Klassiske rekursive problemer: fakultet, Fibonacci, tårne i Hanoi, binær søgning, træ-traversal (pre/in/post-order), quicksort.

Call stack: hver rekursivt kald bruger hukommelse → stack overflow hvis rekursionsdybden er for stor. Pythons standardgrænse: 1000.

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.