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.
Schrijf −105 als 8-bits patroon in two's complement. Lees het patroon als binair getal zonder teken: wat is de waarde U in decimaal?
Wat is het meest negatieve gehele getal N dat in 10-bits two's complement past?
In hoeveel van de 8 rijen van zijn waarheidstabel is ¬(q ∨ p) → ((p → r) ∧ r) waar? Noem dit aantal N.
In hoeveel van de 16 rijen van de waarheidstabel is (p ∨ ¬q) ↔ ¬((r → s) ∨ (¬s ∨ q)) waar? Noem dit aantal N.
Gebruik de Karnaugh-kaart om de minimale som-van-productenvorm (SOP) van F(A, B, C) = Σm(0, 4, 6, 7) te vinden. Hoeveel productermen N heeft die?
Bepaal de minimale SOP-vorm van F(A, B, C, D) = Σm(4, 6, 7, 9, 11, 13) + d(0, 2, 8, 14), waarbij d de don’t-care-condities aangeeft. Hoeveel literals L bevat die?
Vind de inverse van 5 modulo 33: het getal x met 0 < x < 33 en 5·x ≡ 1 (mod 33).
Een RSA-sleutel gebruikt p = 13, q = 31 en e = 13. Ontsleutel de cijfertekst c = 232: bepaal het bericht m.
Dynamisch programmeren is nuttig wanneer een probleem het volgende heeft:
Welke definitie van de klasse NP is juist?
Hoe wordt een nieuw element in een binaire heap ingevoegd?
Door het invoegen van een sleutel in een AVL-boom wordt de linkersubboom van een knoop te hoog, en de nieuwe sleutel kwam in de linkersubboom van zijn linkerkind (left-left-geval). Welke correctie wordt toegepast?
Een boom heeft 3 hoekpunten van graad 3, 2 hoekpunten van graad 4, 3 hoekpunten van graad 2, en al zijn andere hoekpunten zijn bladeren (graad 1). Hoeveel bladeren L heeft hij?
Gebruik het algoritme van Dijkstra om de lengte d(E) van het kortste pad van A naar E in de gewogen graaf te vinden.
Welke query geeft het hoogste salaris per afdeling?
Een tabel heeft een miljoen rijen en een Booleaanse kolom is_active die voor 95% ervan TRUE is. Waarom kan de optimizer een index op is_active negeren voor WHERE is_active = TRUE?
Welk subnetmasker hoort bij /20?
Welk mechanisme voorkomt broadcastlussen in een netwerk met redundante switchverbindingen?
Een subnet gebruikt het masker 255.255.255.252. Hoeveel bruikbare hostadressen H heeft het?
Een host heeft het adres 10.20.126.31/28. Wat is het vierde octet x van zijn netwerkadres?
Antwoord: U = 151
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: N = −512
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: N = 7
Waarheidstabellen: een formule met n verschillende variabelen heeft 2ⁿ rijen, één voor elke combinatie van waarheidswaarden (1 = waar, 0 = onwaar). Werk van binnen naar buiten en geef elke deelformule een eigen kolom. ¬a draait de waarde om; a ∧ b is alleen 1 als beide 1 zijn; a ∨ b is alleen 0 als beide 0 zijn; a → b is alleen 0 als a = 1 en b = 0; a ↔ b is 1 als beide kanten gelijk zijn.
Antwoord: N = 4
Waarheidstabellen: een formule met n verschillende variabelen heeft 2ⁿ rijen, één voor elke combinatie van waarheidswaarden (1 = waar, 0 = onwaar). Werk van binnen naar buiten en geef elke deelformule een eigen kolom. ¬a draait de waarde om; a ∧ b is alleen 1 als beide 1 zijn; a ∨ b is alleen 0 als beide 0 zijn; a → b is alleen 0 als a = 1 en b = 0; a ↔ b is 1 als beide kanten gelijk zijn.
Antwoord: N = 2
Karnaugh-kaarten: de cellen staan in Gray-code (00, 01, 11, 10), dus naburige cellen, ook die over de randen heen, verschillen in precies één variabele. Groepeer de enen in rechthoeken van 1, 2, 4, 8 of 16 cellen, zo groot en zo weinig mogelijk, totdat elke 1 gedekt is. Elke groep is één productterm: de variabelen die erin constant blijven. Een groep van 2ᵏ cellen verliest k variabelen. Don’t-cares (X) mogen worden gebruikt om groepen groter te maken maar hoeven nooit gedekt te worden. Groepeer je in plaats daarvan de nullen, dan krijg je de minimale POS-vorm.
Elke groep is een rechthoek van 2ᵏ cellen; randcellen zijn buren van de cellen op de tegenoverliggende rand.
Antwoord: L = 11
Karnaugh-kaarten: de cellen staan in Gray-code (00, 01, 11, 10), dus naburige cellen, ook die over de randen heen, verschillen in precies één variabele. Groepeer de enen in rechthoeken van 1, 2, 4, 8 of 16 cellen, zo groot en zo weinig mogelijk, totdat elke 1 gedekt is. Elke groep is één productterm: de variabelen die erin constant blijven. Een groep van 2ᵏ cellen verliest k variabelen. Don’t-cares (X) mogen worden gebruikt om groepen groter te maken maar hoeven nooit gedekt te worden. Groepeer je in plaats daarvan de nullen, dan krijg je de minimale POS-vorm.
De grootste groepen die uit enen en X’en gevormd kunnen worden.
Antwoord: 5−1 mod 33 = 20
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).
Elke rest r wordt geschreven als r ≡ t·5 (mod 33).
Antwoord: m = 271
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 · Overlappende deelproblemen en optimale substructuur
Het opslaan van resultaten van overlappende deelproblemen (memoisatie of tabulatie) voorkomt herhaald werk en maakt van exponentiële algoritmen polynomiale.
Antwoord: D · Beslissingsproblemen waarvan ja-antwoorden met een certificaat in polynomiale tijd kunnen worden geverifieerd
Bij een NP-probleem kan een voorgestelde oplossing (certificaat) snel worden gecontroleerd, bijvoorbeeld verifiëren dat een gegeven toekenning een booleaanse formule vervult.
Antwoord: C · Plaats het aan het eind van de array en laat het omhoog zakken (sift up) zolang het de heap-eigenschap schendt
Toevoegen aan het eind houdt de boom compleet; verwisselen met de ouder herstelt de ordening in O(log n) stappen.
Antwoord: D · Een enkele rechtsrotatie bij de ongebalanceerde knoop
In het left-left-geval tilt één rechtsrotatie het linkerkind omhoog en herstelt de balans; zigzaggevallen vereisen een dubbele rotatie.
Antwoord: L = 9
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.
Snelle methode: L = 2 + Σ (d − 2) over de hoekpunten met graad d ≥ 3.
Antwoord: d(E) = 13
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.
Elke regel: het vastgelegde hoekpunt, zijn definitieve afstand en de buren waarvan de afstand verbetert.
Antwoord: B · SELECT dept, MAX(salary) FROM emp GROUP BY dept
GROUP BY dept maakt een groep per afdeling en MAX(salary) kiest de hoogste waarde in elke groep.
Antwoord: C · De meeste rijen voldoen, dus een volledige tabelscan is goedkoper dan veel index-lookups
Een index helpt als hij de zoektocht beperkt tot weinig rijen; als de meeste rijen voldoen, kosten willekeurige index-lookups meer dan de tabel sequentieel lezen.
Antwoord: D · 255.255.240.0
/20 betekent 8 + 8 + 4 enen. Vier enen in het derde octet zijn 11110000 = 240, dus het masker is 255.255.240.0.
Antwoord: C · Spanning Tree Protocol
STP kiest een root bridge en blokkeert redundante paden, en deblokkeert ze als een actieve link uitvalt.
Antwoord: H = 2
IPv4 subnetting: an address has 32 bits. The prefix /p says how many leading bits identify the network; the remaining 32 − p bits number the hosts. A subnet has 2³²⁻ᵖ addresses, but the first (network address) and last (broadcast address) cannot be given to hosts, so 2³²⁻ᵖ − 2 hosts fit. Exceptions: a /31 (point-to-point link, RFC 3021) uses both of its 2 addresses for hosts, and a /32 is one single address (a single host or a loopback).
Antwoord: x = 16
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