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 −12 als 8-bits patroon in two's complement. Lees het patroon als binair getal zonder teken: wat is de waarde U in decimaal?
Stel de bits in op het 8-bits resultaat van 1111 0011 XOR 1010 0110. Wat is de waarde R van het resultaat in decimaal?
In hoeveel van de 8 rijen van zijn waarheidstabel is ¬(a ↔ c) ∧ (a → (b ∨ c)) waar? Noem dit aantal N.
Welke uitspraak is equivalent met ¬∃x F(x), met de ontkenning helemaal naar binnen geschoven? Klik erop.
Gebruik de Karnaugh-kaart om de minimale product-van-sommenvorm (POS) van F(A, B, C) = Σm(0, 3, 4, 6, 7) te vinden. Hoeveel somtermen (factoren) N heeft die?
Een D-flip-flop, getriggerd op de stijgende flank, begint met Q = 0 en krijgt bij 6 stijgende klokflanken de getoonde ingangen. Hoe vaak N verandert Q van toestand?
Vind de inverse van 31 modulo 53: het getal x met 0 < x < 53 en 31·x ≡ 1 (mod 53).
Versleutel het bericht m = 114 met de publieke RSA-sleutel (n, e) = (989, 19). Bepaal de cijfertekst c.
Hoe bouwt het algoritme van Prim een minimale opspannende boom?
Wat zou er volgen als iemand een algoritme in polynomiale tijd vond voor één NP-volledig probleem?
Hoeveel knopen heeft een perfecte binaire boom met hoogte h, waarbij de hoogte in kanten wordt geteld?
Waarom zou een server zijn hashfunctie willekeurig kiezen uit een universele familie?
Hoeveel verschillende Hamiltoncircuits H heeft de volledige graaf K4? Circuits die alleen verschillen in het beginpunt of de richting tellen als hetzelfde.
Bepaal het totale gewicht W van een minimaal opspannende boom van de gewogen graaf.
Wanneer is WHERE EXISTS (subquery) waar voor een rij?
Een gecorreleerde subquery is een subquery die:
Waarom gebruikt Wi-Fi botsingsvermijding (CSMA/CA) in plaats van botsingsdetectie?
De "slow start"-fase van TCP-congestiecontrole:
Een afdeling heeft 239 hostadressen nodig in één subnet. Wat is de langste prefixlengte p (kleinste subnet) die groot genoeg is?
Een host heeft het adres 10.20.208.28/28. Wat is het vierde octet x van zijn netwerkadres?
Antwoord: U = 244
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: R = 85
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.
XOR geeft 1 waar de twee bits verschillen.
Antwoord: N = 3
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: ∀x ¬F(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 = 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: N = 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.
Een D-flip-flop kopieert D bij elke stijgende flank: Q⁺ = D.
Antwoord: 31−1 mod 53 = 12
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·31 (mod 53).
Antwoord: c = 804
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 · Het laat één boom groeien vanaf een startknoop en voegt de goedkoopste kant toe die de boom verlaat
Het algoritme van Prim, met een prioriteitswachtrij van kruisende kanten, loopt met een binaire heap in O(E log V).
Antwoord: C · Elk probleem in NP zou in polynomiale tijd kunnen worden opgelost, dus P = NP
Omdat heel NP in polynomiale tijd reduceert tot elk NP-volledig probleem, geeft een snel algoritme voor één ervan een snel algoritme voor alle.
Antwoord: B · 2h+1 − 1
Optellen van 1 + 2 + 4 + ... + 2h geeft 2h+1 − 1; hoogte 2 geeft bijvoorbeeld 7 knopen.
Antwoord: A · Om het zeer onwaarschijnlijk te maken dat een aanvaller veel sleutels kan kiezen die allemaal botsen
Bij universal hashing is het verwachte aantal botsingen voor elke verzameling sleutels klein, omdat de aanvaller niet weet welke functie is gekozen.
Antwoord: H = 3
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 = 59
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: B · Als de subquery ten minste één rij teruggeeft
EXISTS controleert alleen of er een rij wordt opgeleverd; NOT EXISTS is waar als de subquery geen rijen teruggeeft.
Antwoord: C · Verwijst naar kolommen van de buitenste query en per buitenste rij wordt geëvalueerd
Gecorreleerde subqueries hangen af van de huidige buitenste rij en worden dus logisch per rij geëvalueerd (optimizers kunnen ze herschrijven als joins).
Antwoord: D · Een draadloos station kan botsingen niet betrouwbaar detecteren terwijl het zendt
Een radiozender kan tijdens het zenden geen andere zwakke signalen horen, en sommige stations zijn voor elkaar verborgen. Daarom wacht 802,11 willekeurige backofftijden en gebruikt het bevestigingen.
Antwoord: A · Vergroot het congestievenster exponentieel tot een drempelwaarde of verlies
Slow start laat het congestievenster exponentieel groeien; na de drempelwaarde laat congestion avoidance het lineair groeien, en verlies verkleint het.
Antwoord: p = 24
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 = 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