M2: Undervisning 1 - gennemgang af eksempler
Til undervisningen gennemgår jeg eksempler, der understøtter og eksemplificerer de emner, vi har dækket i videoerne. Det er vigtigt at forstå, hvordan disse koncepter anvendes i praksis, og hvordan de kan hjælpe dig med at løse problemer inden for softwareudvikling. Denne session foregår synkront på Teams og I kan under undervisningen stille spørgsmål og deltage aktivt i diskussionen. Det er en god mulighed for at få afklaret eventuelle tvivlsspørgsmål og få en dybere forståelse af emnerne. Videoen lægges op efterfølgende, så du kan se den igen, hvis du ønsker det.
Eksempler¶
Det er ikke et krav, at I har kigget på eksemplerne før undervisningen, men det kan være en fordel. I vil også kunne finde videoen fra undervisningen nedenfor, når den er klar. Jeg gennemgår følgende eksempler.
Eksempel 1: Multiplikationsprincippet og Additionsprincippet¶
En softwareudvikler skal konfigurere en server med følgende valgmuligheder:
- 3 forskellige operativsystemer (Linux, Windows, macOS)
- 4 forskellige databaser (MySQL, PostgreSQL, MongoDB, Redis)
- 2 forskellige web servere (Apache, Nginx)
-
Hvor mange forskellige serverkonfigurationer er mulige?
\(3 \cdot 4 \cdot 2 = 24\) forskellige konfigurationer (Multiplikationsprincippet)
-
Hvis udvikleren kan vælge mellem 5 cloud-leverandører ELLER 3 lokale servere, hvor mange valgmuligheder har han?
\(5 + 3 = 8\) valgmuligheder (Additionsprincippet)
Eksempel 2: Permutationer og Kombinationer¶
En projektgruppe på 4 personer skal vælges fra en klasse på 20 studerende.
-
Hvor mange forskellige måder kan gruppen vælges, hvis rækkefølgen ikke betyder noget?
\(\binom{20}{4} = \frac{20!}{4!(20-4)!} = \frac{20!}{4! \cdot 16!} = 4845\) måder
-
Hvor mange forskellige måder kan gruppen vælges, hvis rækkefølgen betyder noget (f.eks. projektleder, sekretær, osv.)?
\(P(20,4) = \frac{20!}{(20-4)!} = \frac{20!}{16!} = 20 \cdot 19 \cdot 18 \cdot 17 = 116280\) måder
-
Hvad er sandsynligheden for at en specifik gruppe på 4 personer bliver valgt?
\(\frac{1}{4845} \approx 0.000206\) eller \(0.0206\%\)
Eksempel 3: Sandsynlighed med Lige Sandsynlige Udfald¶
Et spil bruger en terning med 6 sider. Spilleren vinder hvis han får:
- Et lige tal (2, 4, 6)
- Eller et tal større end 4 (5, 6)
-
Hvad er sandsynligheden for at vinde?
Lad \(A = \{2, 4, 6\}\) (lige tal) og \(B = \{5, 6\}\) (større end 4)
\(P(A) = \frac{3}{6} = \frac{1}{2}\)
\(P(B) = \frac{2}{6} = \frac{1}{3}\)
\(P(A \cap B) = \frac{1}{6}\) (kun 6 er både lige og større end 4)
\(P(A \cup B) = P(A) + P(B) - P(A \cap B) = \frac{1}{2} + \frac{1}{3} - \frac{1}{6} = \frac{4}{6} = \frac{2}{3}\)
-
Hvad er sandsynligheden for at tabe?
\(P(\text{taber}) = 1 - P(\text{vinner}) = 1 - \frac{2}{3} = \frac{1}{3}\)
Eksempel 4: Uafhængige og Afhængige Hændelser¶
Hvis to hændelser er uafhængige, så er sandsynligheden for at begge hændelser indtræffer lig med produktet af sandsynlighederne for hver hændelse.
En computer har to komponenter: en processor og en harddisk. Sandsynligheden for at processor fejler er 0.02, og sandsynligheden for at harddisk fejler er 0.05.
-
Hvis komponenterne er uafhængige, hvad er sandsynligheden for at begge fejler?
\(P(\text{processor fejler} \cap \text{harddisk fejler}) = 0.02 \cdot 0.05 = 0.001\) eller \(0.1\%\)
-
Hvad er sandsynligheden for at mindst én komponent fejler?
\(P(\text{mindst én fejler}) = 1 - P(\text{ingen fejler}) = 1 - (0.98 \cdot 0.95) = 1 - 0.931 = 0.069\) eller \(6.9\%\)
Eksempel 5: Betinget Sandsynlighed¶
En softwarefirma har 100 ansatte: 60 programmører og 40 testers. Af programmørerne har 30 erfaring med Python, og af testerne har 10 erfaring med Python.
-
Hvad er sandsynligheden for at en tilfældig medarbejder har Python-erfaring?
\(P(\text{Python}) = \frac{30 + 10}{100} = \frac{40}{100} = 0.4\) eller \(40\%\)
-
Hvis en medarbejder har Python-erfaring, hvad er sandsynligheden for at han er programmør?
\(P(\text{programmør}|\text{Python}) = \frac{P(\text{programmør} \cap \text{Python})}{P(\text{Python})} = \frac{30/100}{40/100} = \frac{30}{40} = 0.75\) eller \(75\%\)
Eksempel 6: Adgangskoder og Sikkerhed¶
En webside kræver en 6-tegns adgangskode med følgende regler:
- Mindst 1 stort bogstav (A-Z)
- Mindst 1 lille bogstav (a-z)
- Mindst 1 tal (0-9)
- Resten kan være hvilket som helst af ovenstående
Hvor mange forskellige adgangskoder er mulige?
Gyldige koder: \(33,294,892,800\)