Tilbake
1.7
Rekursive sammenhenger og programmering

1.7 Rekursive sammenhenger og programmering

Utforske følger med programmering.

55 min
9 oppgaver
RekursjonProgrammeringPythonSimulering
Du leser den tradisjonelle versjonen
Din fremgang i kapitlet
0 / 9 oppgaver
Kapitlets plass i kurset

Programmering og rekursjon

Programmering er et kraftig verktøy for å utforske matematiske sammenhenger. Vi kan bruke Python til å generere følger, beregne summer og simulere rekursive prosesser.

Rekursjon

En rekursiv definisjon definerer en verdi ved hjelp av tidligere verdier.

For følger: an=f(an1,an2,)a_n = f(a_{n-1}, a_{n-2}, \ldots)

En rekursiv definisjon trenger alltid startverdier (basiskasus).

✏️Eksempel 1: Aritmetisk folge i Python

Skriv et program som genererer de 10 forste leddene i folgen an=3+5(n1)a_n = 3 + 5(n-1).

# Rekursiv metode
a = 3  # Startverdi
for n in range(1, 11):
    print(f"a_{n} = {a}")
    a = a + 5  # a_n = a_{n-1} + 5

Utskrift:
a1 = 3, a2 = 8, a3 = 13, ..., a10 = 48

📝Oppgave 1

Skriv et Python-program som genererer de 15 forste leddene i folgen med a1=10a_1 = 10 og d=3d = -3.

✏️Eksempel 2: Fibonacci i Python

Skriv et program som beregner de 20 forste Fibonacci-tallene.

fib = [1, 1]
for i in range(2, 20):
    fib.append(fib[i-1] + fib[i-2])

for i, f in enumerate(fib, 1):
    print(f"F_{i} = {f}")

Utskrift: F1 = 1, F2 = 1, F3 = 2, ..., F20 = 6765

📝Oppgave 2

Beregn forholdet FnFn1\displaystyle \frac{F_n}{F_{n-1}} for store nn. Hva skjer?

Rekursive funksjoner

En rekursiv funksjon er en funksjon som kaller seg selv. Den ma ha et basiskasus som stopper rekursjonen.

✏️Eksempel 3: Fakultet rekursivt

Implementer fakultet n!=n(n1)!n! = n \cdot (n-1)! som en rekursiv funksjon.

def fakultet(n):
    if n <= 1:
        return 1
    return n * fakultet(n - 1)

for i in range(10):
    print(f"{i}! = {fakultet(i)}")
📝Oppgave 3

Skriv en rekursiv funksjon for det n-te Fibonacci-tallet.

✏️Eksempel 4: Simulere sprettball

Simuler en ball fra 10 m som spretter til 80% av forrige høyde.

h = 10
total = h
while h > 0.001:
    h = h * 0.8
    total += 2 * h

print(f"Total strekning: {total:.2f} m")

Utskrift: Total strekning: 90.00 m (narmer seg teoretisk 90)

📝Oppgave 4

Modifiser programmet til å finne nar ballen spretter under 1 cm.

Oppsummering

Rekursjon i programmering:
- Rekursive definisjoner kan implementeres som rekursive funksjoner
- Alternativt bruker vi lokker (iterasjon)
- Rekursive funksjoner ma alltid ha et basiskasus

Typiske anvendelser:

ProblemRekursiv formel
Aritmetisk folgean=an1+da_n = a_{n-1} + d
Geometrisk folgean=kan1a_n = k \cdot a_{n-1}
FibonacciFn=Fn1+Fn2F_n = F_{n-1} + F_{n-2}
Fakultetn!=n(n1)!n! = n \cdot (n-1)!
Repetisjonsoppgaver
Din fremgang
0deloppgaver0 / 5 oppgaver

Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.