Talstelsels
- Plaatswaarden
- binair 2k, octaal 8k, hex 16k
- Naar decimaal
- Σ dk·bk
- Vanuit decimaal
- deel door het grondtal en lees de resten van onder naar boven
- Hex ↔ binair
- één hexcijfer = 4 bits
- Two's complement
- inverteer de bits en tel 1 op
Formuleoverzichten, de belangrijkste methodestappen voor elk onderwerp en 20 oefenopgaven, met volledige oplossingen achterin.
Stel de bits zo in dat ze −83 opslaan in 8-bits tweecomplement. Wat is de waarde U van het patroon, gelezen als getal zonder teken?
Wat is het meest negatieve gehele getal N dat in 12-bits two's complement past?
Welke formule is logisch equivalent met c ∨ (a ∧ b)? Klik erop.
Welke uitspraak is equivalent met ¬∃x (A(x) ∧ B(x)), met de ontkenning helemaal naar binnen geschoven? Klik erop.
Een 4-naar-1-multiplexer heeft selectie-ingangen S₁ = A en S₀ = B, en data-ingangen gekoppeld aan I₀ = C, I₁ = 0, I₂ = 0, I₃ = 1. Voor hoeveel van de 8 combinaties van A, B en C is de uitgang F = 1? Bepaal N.
Een synchrone mod-5-teller telt 0, 1, …, 4 en keert dan terug naar 0. Hij begint bij 4. Welke stand Q (decimaal) toont hij na 14 klokpulsen?
Los 14x ≡ 43 (mod 59) op. Geef de oplossing x met 0 < x < 59.
Een RSA-sleutel gebruikt de priemgetallen p = 19 en q = 37 en de publieke exponent e = 23. Bepaal de privé-exponent d (0 < d < φ(n)).
Wat is de geamortiseerde tijdcomplexiteit van een element toevoegen aan het einde van een dynamische array die zijn capaciteit verdubbelt als hij vol is?
Wat is het verschil tussen een onbeslisbaar en een onhandelbaar probleem?
Waar staat in een binaire heap die in een array vanaf index 0 is opgeslagen de ouder van de knoop op index i?
Welke garantie geven de regels van een rood-zwartboom over de hoogte van een boom met n sleutels?
Heeft de samenhangende graaf een Eulercircuit, een Eulerpad dat geen circuit is, of geen van beide? Klik op je antwoord.
Bepaal het totale gewicht W van een minimaal opspannende boom van de gewogen graaf.
Een tabel heeft rijen waarin col NULL is. Welke rijen geeft WHERE col = NULL terug?
Waarom gebruik je na customers LEFT JOIN orders COUNT(o.id) in plaats van COUNT(*) om bestellingen per klant te tellen?
NAT (network address translation) wordt vooral gebruikt om:
Waarom waarschuwt een browser als een site een zelfondertekend certificaat toont?
Een afdeling heeft 485 hostadressen nodig in één subnet. Wat is de langste prefixlengte p (kleinste subnet) die groot genoeg is?
Een host heeft het adres 10.20.11.220/28. Wat is het vierde octet x van het laatste bruikbare hostadres in zijn subnet?
Antwoord: U = 173
Bits instellen: elke bit is een macht van twee waard (128, 64, …, 1). Eén hexadecimaal cijfer is precies vier bits, en in 8-bits tweecomplement is de meest linkse bit −128 waard. Bitsgewijze bewerkingen werken op elke bitpositie apart.
Antwoord: N = −2048
Positionele talstelsels: elk cijfer is zijn waarde maal een macht van het grondtal waard. Binair zijn de posities 1, 2, 4, 8, 16, … waard, hexadecimaal 1, 16, 256, …, met A–F voor 10–15. In 8-bits two's complement is het meest linkse bit −128 waard in plaats van +128; zo worden negatieve getallen opgeslagen.
Antwoord: (c ∨ a) ∧ (c ∨ b)
Logische equivalentie: twee formules zijn equivalent (≡) als ze in elke rij van de waarheidstabel dezelfde waarde hebben. Een tautologie is in elke rij 1, een contradictie in elke rij 0, en een contingentie is geen van beide. Nuttige wetten: De Morgan, ¬(a ∧ b) ≡ ¬a ∨ ¬b en ¬(a ∨ b) ≡ ¬a ∧ ¬b; a → b ≡ ¬a ∨ b ≡ ¬b → ¬a (contrapositie); ¬(a → b) ≡ a ∧ ¬b; en de distributieve wetten, a ∨ (b ∧ c) ≡ (a ∨ b) ∧ (a ∨ c).
De kolommen na de streep zijn de opties in de getoonde volgorde.
Antwoord: ∀x (A(x) → ¬B(x))
Kwantoren en redeneringen: ¬∀x P(x) ≡ ∃x ¬P(x) en ¬∃x P(x) ≡ ∀x ¬P(x). Schuif een ontkenning naar binnen, verwissel elke kwantor die ze passeert en ontken de binnenste formule met de propositiewetten, zoals ¬(a → b) ≡ a ∧ ¬b. Een redenering is geldig als de conclusie 1 is in elke rij waarin alle premissen 1 zijn. Eén rij met ware premissen en een onware conclusie is een tegenvoorbeeld en toont aan dat de redenering ongeldig is.
De andere opties laten een kwantor onveranderd, veranderen de volgorde van de kwantoren, of ontkennen de binnenste formule verkeerd.
Antwoord: N = 3
Multiplexer: een 2ⁿ-naar-1-multiplexer geeft één van zijn data-ingangen door aan de uitgang; de selectielijnen, gelezen als binair getal, kiezen welke. Voor een 4-naar-1-MUX met selecties S₁S₀ = AB is F = A′B′·I₀ + A′B·I₁ + AB′·I₂ + AB·I₃. Door de data-ingangen aan 0, 1, C of C′ te koppelen, maakt de MUX elke functie van A, B en C, wat een veelgebruikte manier is om logica met één chip te bouwen.
Antwoord: Q = 3
Flip-flops en tellers: een flip-flop verandert alleen op de actieve klokflank. D kopieert zijn ingang (Q⁺ = D); T wisselt als T = 1; JK houdt vast bij 00, reset bij 01, zet bij 10 en wisselt bij 11. Een n-bits binaire teller heeft 2ⁿ toestanden en telt modulo 2ⁿ; een mod-N-teller telt 0, 1, …, N − 1 en dan weer 0, en heeft de kleinste n met 2ⁿ ≥ N flip-flops nodig. Elke trap van een ripple-teller halveert de frequentie, dus de laatste uitgang van een mod-N-teller loopt op fklok/N. Een Johnson-teller van n flip-flops heeft 2n toestanden, een ringteller n.
Elke 5 pulsen brengen de teller terug in dezelfde toestand.
Antwoord: x = 41
Inversen en congruenties: a heeft een inverse modulo n precies als ggd(a, n) = 1. Het uitgebreide algoritme van Euclides schrijft 1 = s·n + t·a, en dan is a⁻¹ ≡ t (mod n). Een congruentie a·x ≡ b (mod n) met ggd(a, n) = 1 heeft de oplossing x ≡ a⁻¹·b. Twee congruenties x ≡ r₁ (mod m₁) en x ≡ r₂ (mod m₂) met onderling ondeelbare moduli hebben één oplossing modulo m₁·m₂ (Chinese reststelling). Eulers φ(n) telt de getallen van 1 tot n die onderling ondeelbaar zijn met n: φ(n) = n·∏(1 − 1/p).
Antwoord: d = 479
Modulaire machten en RSA: bereken aᵏ mod n door herhaald kwadrateren: schrijf k binair, kwadrateer, reduceer na elke stap en vermenigvuldig de machten waarvan de bit 1 is. Fermat: aᵖ⁻¹ ≡ 1 (mod p) voor een priemgetal p dat a niet deelt, dus de exponent kan modulo p − 1 gereduceerd worden. RSA: kies priemgetallen p en q, n = p·q en φ(n) = (p − 1)(q − 1); de publieke exponent e is onderling ondeelbaar met φ(n), en de privé-exponent is d = e⁻¹ mod φ(n). Versleutel met c = mᵉ mod n en ontsleutel met m = cᵈ mod n.
Antwoord: B · O(1)
Alle elementen worden alleen bij machten van twee gekopieerd; verdeeld over alle toevoegingen zijn de gemiddelde kosten per toevoeging constant.
Antwoord: C · Een onbeslisbaar probleem heeft geen algoritme voor alle invoer; een onhandelbaar probleem wel, maar dat is te traag
Voor het stopprobleem bestaat helemaal geen algoritme; een NP-moeilijk probleem zoals TSP kan met brute force worden opgelost, alleen niet in een bekende polynomiale tijd.
Antwoord: A · Op index ⌊(i − 1) / 2⌋
De kinderen van i staan op 2i + 1 en 2i + 2, dus de ouder van i staat op ⌊(i − 1) / 2⌋; bij indexering vanaf 1 is het ⌊i / 2⌋.
Antwoord: D · De hoogte is hoogstens 2 log2(n + 1)
Elk pad heeft hetzelfde aantal zwarte knopen en rode knopen kunnen niet naast elkaar liggen, dus het langste pad is hoogstens twee keer het kortste, wat hoogte O(log n) geeft.
Antwoord: Eulercircuit
Euler, Hamilton en bomen: een samenhangende graaf heeft een Eulercircuit (elke kant één keer, terug naar het begin) als elk hoekpunt even graad heeft, en een Eulerpad dat geen circuit is als precies twee hoekpunten oneven graad hebben; het pad loopt dan van het ene oneven hoekpunt naar het andere. Een Hamiltoncircuit bezoekt elk hoekpunt één keer; Kn heeft er (n − 1)!/2. Een boom op n hoekpunten heeft n − 1 kanten, en een samenhangende graaf met m kanten houdt een opspannende boom over na het verwijderen van m − n + 1 kanten.
Antwoord: W = 20
Kortste paden en opspannende bomen: het algoritme van Dijkstra legt per ronde één hoekpunt vast: het onafgehandelde hoekpunt met de kleinste voorlopige afstand. Zijn afstand is dan definitief, en elke buur v krijgt d(v) = min(d(v), d(u) + w(u, v)). Het algoritme van Kruskal bouwt een minimaal opspannende boom door de kanten van licht naar zwaar te nemen en elke kant over te slaan die een cykel zou sluiten; het algoritme van Prim laat één boom groeien vanuit een beginpunt door steeds de lichtste kant toe te voegen die eruit vertrekt. Een opspannende boom van n hoekpunten heeft n − 1 kanten.
Antwoord: D · Geen rijen, omdat de vergelijking onbekend (UNKNOWN) is
Elke vergelijking met NULL via = geeft UNKNOWN, en WHERE houdt alleen TRUE-rijen over; gebruik in plaats daarvan col IS NULL.
Antwoord: B · COUNT(*) telt de met NULL gevulde rij als 1 voor klanten zonder bestellingen
De left join geeft voor zulke klanten één rij met NULL in de bestelkolommen; COUNT(o.id) slaat de NULL over en meldt correct 0.
Antwoord: D · Veel apparaten met privéadressen één publiek IP-adres te laten delen
NAT herschrijft adressen (en poorten) zodat privénetwerken via een kleiner aantal publieke adressen toegang hebben tot het internet.
Antwoord: B · Geen vertrouwde certificaatautoriteit staat ervoor in dat de sleutel bij die site hoort
Browsers vertrouwen certificaten die, rechtstreeks of via een keten, zijn ondertekend door CA's in hun trust store. Een zelfondertekend certificaat kan door iedereen zijn gemaakt, bijvoorbeeld door een man-in-the-middle.
Antwoord: p = 23
IPv4-subnetting: een adres heeft 32 bits. Het prefix /p geeft aan hoeveel voorste bits het netwerk aanduiden; de overige 32 − p bits nummeren de hosts. Een subnet heeft 2³²⁻ᵖ adressen, maar het eerste (netwerkadres) en het laatste (broadcastadres) kunnen niet aan hosts worden gegeven, dus er passen 2³²⁻ᵖ − 2 hosts in. Uitzonderingen: een /31 (point-to-pointverbinding, RFC 3021) gebruikt allebei zijn 2 adressen voor hosts, en een /32 is één enkel adres (één host of een loopback).
Antwoord: x = 222
IPv4-subnetting: een adres heeft 32 bits. Het prefix /p geeft aan hoeveel voorste bits het netwerk aanduiden; de overige 32 − p bits nummeren de hosts. Een subnet heeft 2³²⁻ᵖ adressen, maar het eerste (netwerkadres) en het laatste (broadcastadres) kunnen niet aan hosts worden gegeven, dus er passen 2³²⁻ᵖ − 2 hosts in. Uitzonderingen: een /31 (point-to-pointverbinding, RFC 3021) gebruikt allebei zijn 2 adressen voor hosts, en een /32 is één enkel adres (één host of een loopback).
ExamProblems · examproblems.com/courses/computer-science-fundamentals