Skip to end of metadata
Go to start of metadata

.Du lager et program for å håndtere tippingkuponger for fotballresultat. Du har tidligere laget en funksjon som analyserer en tippekupong. Du ønsker nå å bruke funksjonen til å få en oversikt over vinneroddsen i fotballtipping.

Lag et script som genererer 10000 tilfeldige tippekuponger og resultat, for hver av dem regner ut hvor mange korrekte gjetninger det var i kupongen, og som til slutt lager et histogram som viser fordelingen av antall korrekte resultat i tippekupongene.

Utdelt kode
 

 analyser_tippekupong.m
analyser_tippekupong.m
function [ er_gyldig, treff, antall_treff ] = analyser_tippekupong(gjetninger, fasit)
    er_gyldig = er_kupong_gyldig(gjetninger);
    treff = finn_treff(gjetninger, fasit);
    antall_treff = length(treff);
end
function retur = er_kupong_gyldig(kupong)
    antall_kryss_per_rad = sum(kupong, 2);
    er_rad_gyldig = antall_kryss_per_rad == 1;
    retur = all(er_rad_gyldig);
end
function retur = finn_treff(kupong, fasit)
    retur = all(sum(kupong, 2) == 1);
end 

Videoforklaring (19:22)

Del 1 (5:34)Del 2 (5:20)Del 3 (3:52)Del 4 (4:36)
Oppgaveintroduksjon, og problemoppdeling.Hvordan generere en tilfeldig kupong.Gjenbruk av funksjon fra oppgave 6.2.2, og bruk av for-løkke til å samle 10000 resultat.

Plotting av histogram, både med antall og prosentandel langs y-aksen.


Løsningsforslag

 Hvis du har prøvd selv, trykk her for å se svaret...
lag_tilfeldig_kupong.m
function retur = lag_tilfeldig_kupong()
    retur = false(12, 3);
    for i = 1:12
        tilfeldig_kolonne = randi(3);
        retur(i, tilfeldig_kolonne) = true;
    end
end
lag_kupong_histogram.m
treff = zeros(1, 10000);
for i = 1:10000
    kupong = lag_tilfeldig_kupong();
    fasit = lag_tilfeldig_kupong();
    [~, ~, antall_treff] = analyser_tippekupong(kupong, fasit);
    treff(i) = antall_treff;
end
histogram(treff);
% Man kan lage et histogram hvor y-aksen er prosentandel og ikke antall ved å kalle histogram slik:
% histogram(treff, 'Normalization', 'probability'); 
  • No labels