Simulering av virusspredning i en populasjon

Hele eksamen, alle hjelpemidler

Simulering av virusspredning i en populasjon

I denne oppgaven skal du utvikle et program som simulerer smitte, smittespredning, sykdom og død eller friskhet med immunitet. I simuleringen skal en person kunne gjennomløpe følgende faser: frisk uten immunitet (lys grå), smittet uten symptomer (rosa), syk (rød), død (svart) eller frisk med immunitet (mørk grå).

Programmet skal utvikles som et objektorientert program med nødvendige klasser og metoder gjennom tre deler. Merk: Du kan svare på én del av oppgaven om gangen eller levere kun siste del som et enkelt program, akkurat som du selv ønsker.

Del 1: klassen Person

I denne delen skal du implementere en klasse som modellerer en person. Personen skal kunne være i følgende tilstander:

  • frisk uten immunitet (lys grå)
  • smittet (rosa med svart skråstrek)
  • syk (rød med hvit skråstrek)
  • frisk med immunitet (mørk grå med sort prikk)
  • død (svart med hvit prikk)
Hjelpemiddelkrav: Krever PC

Personklassen skal inneholde funksjonalitet for at nye personer starter som friske uten immunitet og kan bli smittet av andre. Etter tre dager som smittet blir personer syke, og etter fire dagers sykdom blir de friske med immunitet. Sannsynligheten for død mens en person er syk skal være 1 % (0,01) hver dag mens de er syke. Definer klassen med passende datafelter og metoder.

Nedenfor ser du eksempler på en grafisk representasjon av et sykdomsforløp for en enkeltperson. Merk: Du trenger ikke å lage en simulering i denne delen, kun implementere funksjonaliteten i Personklassen.

Sykdomsforløp der personen er frisk uten immunitet, smittet i tre dager, syk i fire dager og til slutt frisk med immunitet

eller

Sykdomsforløp der personen er frisk uten immunitet, smittet i tre dager, syk i to dager og så dør

Del 2: smittespredning i en populasjon

Hjelpemiddelkrav: Krever PC

I denne delen skal du gjøre to ting:

Implementer en klasse Populasjon som skal holde orden på et bestemt antall personer og smitte fra en person til naboer. I denne oppgaven er naboer definert som plassert inntil hverandre vannrett og loddrett, men ikke på skrå. Hver person har altså fire naboer.

Implementer funksjonalitet for å overføre smitte fra en smittet eller syk person til alle naboer som er friske uten immunitet, slik som i figur 2. Sannsynligheten for å bli smittet av en nabo skal være 30 % (0,3).

En syk person i en populasjon
Figur 1: En syk person i en populasjon
En syk person med to smittede naboer
Figur 2: En syk person med to smittede naboer

Rutenettet representerer populasjonen. De lysegrå boksene representerer friske personer uten immunitet, og den røde boksen med hvit skråstrek i figur 1 representerer en syk person. De to rosa boksene med svart skråstrek i figur 2 representerer de smittede naboene til personen i midten.

Del 3: simuleringen

Hjelpemiddelkrav: Krever PC

I denne delen skal du implementere en simulering av smittespredning i en populasjon av personer som starter med en syk og fire smittede personer, som vist i figuren nedenfor.

Rutenett på 49 ganger 49 med en syk person i midten og smittede personer over, under, til høyre og til venstre

Den røde boksen med hvit skråstrek representerer en syk person. De fire rosa boksene med sorte skråstreker representerer fire smittede personer som ikke har symptomer, de er altså i virusets inkubasjonstid.

Animasjon av de ti første dagene med smittespredning fra den syke personen i midten

Ovenfor ser vi en simulering av de 10 første dagene med smittespredning. De røde boksene med hvit skråstrek representerer personer som er syke, de har smitten med symptomer, mens de rosa boksene med hvit skråstrek representerer smittede personer uten symptomer. De mørkegrå boksene med svart prikk representerer friske personer med immunitet, og de svarte boksene med hvit prikk representerer døde personer.

Forstå oppgaven med en KI

Du får en ferdig tekst du limer inn i den KI-chatboten du bruker. Teksten inneholder oppgaven og en instruks om at chatboten skal hjelpe deg å tenke selv — stille spørsmål, gi ett hint av gangen og la deg gjøre regningen.

Denne oppgaven har ikke løsningsforslag ennå, så chatboten må regne den ut selv. Da kan den ta feil — sjekk svaret nøye.

Hva du bør vite
  • Ingenting sendes herfra. Teksten kopieres bare til utklippstavla på enheten din. Det du limer inn i en chatbot, går til den tjenesten — og de har sine egne regler for hva de lagrer.
  • Ikke lim inn personopplysninger — navn, skole eller noe annet om deg selv eller andre. Oppgaveteksten holder.
  • KI kan ta feil, også i informasjonsteknologi. Sjekk alltid mot løsningsforslaget her på siden.
  • Er du usikker på om du har lov til å bruke KI på skolearbeidet ditt, spør læreren din først.

Tastatursnarveier

Navigasjon

⌘K / Ctrl+K
Åpne søk
G F
Gå til Fag
G E
Gå til Eksamener
G T
Gå til Temaer
G K
Gå til Kompetansemål
G H
Hjem
?
Vis snarveier

I oppgave

←/→ · J/K
Forrige / neste oppgave
0
Marker som ikke prøvd
1
Marker som prøvd
2
Marker som trenger hjelp
3
Marker som ferdig
S
Vis / skjul løsningsforslag
A
Legg til i liste
N
Skriv notat
Esc
Tilbake / avslutt