S2 eksempeloppgave om programmering av simulering av normalfordeling

Her kan du stille spørsmål vedrørende problemer og oppgaver i matematikk for videregående skole og oppover på høyskolenivå. Alle som føler trangen er velkommen til å svare.

Moderatorer: Aleks855, Gustav, Nebuchadnezzar, Janhaa, DennisChristensen, Emilga

Svar
stalegjelsten
Pytagoras
Pytagoras
Innlegg: 15
Registrert: 07/02-2018 15:36

Hei. I eksempeloppgavene til S2 så finner vi denne oppgaven i del 2 (litt forenklet tekst):
På en skole er det 323 jenter og 301 gutter hvor X er høyde på tilf. valgt jente og Y er høyde på tilf. valgt gutt. Anta at X og Y er normalfordelt med, μₓ = 168, μᵧ = 180, σₓ = 6, σᵧ = 8

Lag et program som du kan bruke til å simulere sannsynligheten for at en tilfeldig valgt elev er høyere enn 175 cm.
Hva tolker dere at elevene skal gjøre her? Jeg gjorde et forsøk på løsning ved å generere populasjoner med scipy.stat.norm.rvs, men har ikke peiling på om det er dette eksamensoppgaver "ønsker" som løsning. (Jeg vet forsåvidt heller ikke om det regner riktig engang, så fint med tilbakemeldinger på det også :wink: )

Kode: Velg alt

# På en skole er det 323 jenter og 301 gutter.
# X er høyde på tilf. jente
# Y er høyde på tilf. gutt
# Anta at X og Y er normalfordelt med
#   μₓ = 168
#   μᵧ = 180
#   σₓ = 6
#   σᵧ = 8
# Lag et program som du kan bruke til å smulere sannsynligheten for at en
# tilfeldig valgt elev er høyere enn 175 cm.

from scipy.stats import norm

grense = 175
antall_simuleringer = 1000

n_x = 323
n_y = 301
mu_x = 168
mu_y = 180
s_x = 6
s_y = 8


antall_over = 0
for i in range(antall_simuleringer):
    X = norm.rvs(mu_x, s_x, n_x).round(decimals=2)
    Y = norm.rvs(mu_y, s_y, n_y).round(decimals=2)

    elever = list(X) + list(Y)

    for j in elever:
        if j > grense:
            antall_over += 1


print(f"Andelen elever over {grense} cm er: {antall_over/((n_x+n_y)*antall_simuleringer) * 100:.1f} %")
Svar