Suskaičiuokite skirtingus kintamuosius: teisingumo lentelėje yra 2ⁿ eilučių, o pirmoji eilutė – visi kintamieji lygūs 1.
Kiekvienai posakio daliai skirkite savo stulpelį ir užpildykite stulpelius iš vidaus į išorę.
Taikykite kiekvienos jungties taisyklę: → yra 0 tik tada, kai 1 → 0, o ↔ yra 1, kai abi pusės sutampa.
Tikrindami ekvivalentumą, palyginkite galutinius stulpelius eilutė po eilutės; tikrindami argumentą, žiūrėkite tik į eilutes, kuriose visos prielaidos lygios 1.
Norėdami paneigti kvantorių turintį teiginį, perkelkite ¬ į vidų, sukeiskite ∀ ir ∃ vietomis ir paneikite vidinę formulę.
Skaitmeninė logika: elementai, Karno žemėlapiai ir trigeriai
Pagrindiniai elementai
A·B, A + B, A′, (A·B)′, (A + B)′, A ⊕ B
Būlio taisyklės
X + X′ = 1, X·X′ = 0, X + XY = X, XY + XY′ = X
De Morgano dėsniai
(X·Y)′ = X′ + Y′, (X + Y)′ = X′·Y′
Karno žemėlapio tvarka
00, 01, 11, 10 (Gray code)
2ᵏ langelių grupė
netenka k kintamųjų
4 į 1 multiplekseris
F = A′B′I0 + A′BI1 + AB′I2 + ABI3
Trigeriai
D: Q⁺ = D, T: Q⁺ = T ⊕ Q, JK: Q⁺ = JQ′ + K′Q
Skaitikliai
n bitų: 2ⁿ būsenų; mod-N: mažiausias n, kad 2ⁿ ≥ N; fout = fclk/N
Nuosekliojo veikimo (ripple) skaitiklis
fmax = 1/(n·tpd)
Žiediniai ir Johnsono skaitikliai
n ir 2n būsenų
Metodas
Grandinei dirbkite nuo įėjimų iki išėjimo po vieną elementą ir užrašykite reikšmę ant kiekvieno laido arba užrašykite išraišką ir užpildykite teisingumo lentelę.
Supaprastindami įrašykite vienetus (o nesvarbias reikšmes kaip X) į Karno žemėlapį su Grejaus kodo eilutėmis ir stulpeliais: 00, 01, 11, 10.
Vienetus padenkite kuo mažiau ir kuo didesnių 1, 2, 4, 8 ar 16 langelių grupių, apsisukančių per kraštus; kiekviena grupė yra vienas sandaugos narys iš kintamųjų, kurie joje nesikeičia. POS formai grupuokite nulius.
Trigeriams ir skaitikliams skaitykite įėjimus kiekvienu aktyviu taktiniu frontu, užrašykite būseną po kiekvieno fronto ir atminkite, kad n bitų skaitiklis apsisuka po 2ⁿ būsenų.
Skaičių teorija ir modulinė aritmetika
Dalyba su liekana
a = q·n + r, 0 ≤ r < n
Euklidas
gcd(a, b) = gcd(b, a mod b)
Mažiausias bendrasis kartotinis
lcm(a, b) = a·b/gcd(a, b)
Atvirkštinė
a·a⁻¹ ≡ 1 (mod n), gcd(a, n) = 1
Tiesinė kongruencija
a·x ≡ b → x ≡ a⁻¹·b (mod n)
Oilerio funkcija
φ(n) = n·∏(1 − 1/p), φ(pᵏ) = pᵏ − pᵏ⁻¹
Ferma
aᵖ⁻¹ ≡ 1 (mod p)
RSA
n = pq, φ = (p − 1)(q − 1), d = e⁻¹ mod φ, c = mᵉ mod n, m = cᵈ mod n
Metodas
Pirmiausia visus skaičius suredukuokite moduliu n; liekanos yra nuo 0 iki n − 1.
Atvirkštiniam skaičiui taikykite išplėstinį algoritmą ir pasilikite a koeficientą; jei jis neigiamas, pridėkite n.
Sprendžiant a·x ≡ b, dauginkite iš a⁻¹; dvi kongruencijas sujunkite rašydami x = r₁ + m₁k.
Laipsniams užrašykite rodiklį dvejetainiu pavidalu ir kelkite kvadratu pakartotinai; RSA atveju d = e⁻¹ mod φ(n), kur φ(n) = (p − 1)(q − 1).
Grafų teorija
Rankų paspaudimo lema
Σ deg(v) = 2|E|
Pilnieji grafai
|E(Kn)| = n(n − 1)/2, |E(Km,n)| = m·n
Reguliarusis grafas
|E| = n·k/2
Medis ir miškas
|E| = n − 1, |E| = n − c
Medžio lapai
L = 2 + Σ (deg(v) − 2) over deg(v) ≥ 3
Oileris
ciklas: visų viršūnių laipsniai lyginiai; kelias: lygiai 2 nelyginio laipsnio viršūnės
Hamiltono ciklai grafe Kn
(n − 1)!/2
Dijkstros atnaujinimas
d(v) = min(d(v), d(u) + w(u, v))
L ilgio maršrutai
(Mᴸ)ij
Metodas
Užrašykite kiekvienos viršūnės laipsnį; laipsnių suma lygi dvigubam briaunų skaičiui.
Oilerio uždaviniuose patikrinkite, ar grafas jungus, ir suskaičiuokite nelyginio laipsnio viršūnes.
Medžiams naudokite n − 1 briaunų ir rankų paspaudimo lemą.
Dijkstros algoritme laikykite preliminarių atstumų lentelę ir kiekviename etape užfiksuokite mažiausio atstumo dar neužfiksuotą viršūnę.
Minimaliam karkasiniam medžiui surikiuokite briaunas pagal svorį ir praleiskite kiekvieną briauną, uždarančią ciklą (Kruskalis), arba auginkite vieną medį iš pradinės viršūnės (Primas).
IPv4 potinkliai
Mazgai potinklyje
2(32 − prefix) − 2 (/31: 2, /32: 1)
Bloko dydis
256 − (mask octet)
Tinklo adresas
IP AND kaukė
Transliacijos adresas
IP OR (NOT kaukė): visi mazgo bitai lygūs 1
Potinkliai iš n pasiskolintų bitų
2n
2Uždaviniai
1.Skaičiavimo sistemosVidutinis
8 bitų seka 1001 1010 saugo sveikąjį skaičių su ženklu papildomajame kode. Kokia jo reikšmė N dešimtainėje sistemoje?
1001 10108 bit
N =
2.Skaičiavimo sistemosSunkus
Nustatykite bitus pagal 8 bitų rezultatą 0110 1011 AND 0111 0011. Kokia rezultato reikšmė R dešimtainėje sistemoje?
0110 1011AND0111 0011
R =
3.Teiginių logika ir įrodymaiVidutinis
Kiek iš 8 teisingumo lentelės eilučių ¬((p ∧ q) → ¬(q → (r ∨ p))) yra teisinga? Pažymėkite šį skaičių N.
¬((p ∧ q) → ¬(q → (r ∨ p)))
N =
4.Teiginių logika ir įrodymaiSunkus
Duotos prielaidos b → c; c → a. Kokia išvada iš jų išplaukia? Spustelėkite ją.
b → cc → a
1b → a
2b ∧ a
3a → b
4¬b → ¬a
5.Skaitmeninė logika: elementai, Karno žemėlapiai ir trigeriaiVidutinis
Šiame Karno žemėlapyje lygiai vienas vienetas neturi gretimo vieneto, todėl minimalioje SOP formoje lieka vieno langelio grupe (pilna keturių literalų minterma). Kaimynai per žemėlapio kraštus skaičiuojami. Spustelėkite tą langelį.
F = Σm(0, 1, 5, 6, 9, 10, 11)
1AB = 00, CD = 00
2AB = 00, CD = 01
3AB = 00, CD = 11
4AB = 00, CD = 10
5AB = 01, CD = 00
6AB = 01, CD = 01
7AB = 01, CD = 11
8AB = 01, CD = 10
9AB = 11, CD = 00
10AB = 11, CD = 01
11AB = 11, CD = 11
12AB = 11, CD = 10
13AB = 10, CD = 00
14AB = 10, CD = 01
15AB = 10, CD = 11
16AB = 10, CD = 10
6.Skaitmeninė logika: elementai, Karno žemėlapiai ir trigeriaiSunkus
Raskite minimalią F(A, B, C, D) = Σm(3, 4, 5, 6, 9, 10, 12, 13, 14, 15) + d(2, 7, 11) SOP formą, kur d žymi nesvarbias sąlygas. Kiek literalų L ji turi?
Tinklas 192.168.254.0/24 padalytas į /29 potinklius, sunumeruotus 1, 2, 3, … nuo mažiausio adreso (1 potinklis prasideda nuo .0). Koks potinklio Nr. 4 transliacijos adreso ketvirtasis oktetas x?
192.168.254.0/24/29potinklis 4 (1 potinklis prasideda nuo .0)
x =
20.IPv4 potinkliaiSunkus
Tinklas 192.168.250.0/24 VLSM būdu dalijamas šiems LAN: A: 44 mazgai, B: 8 mazgai, C: 12 mazgai, D: 5 mazgai, E: 17 mazgai. Potinkliai skiriami nuo .0 aukštyn, pirmiausia LAN su daugiausia mazgų, kiekvienam mažiausias tinkamas potinklis. Koks LAN B tinklo adreso ketvirtasis oktetas x?
A: 44B: 8C: 12D: 5E: 17
x =
3Tirpalai
1.Skaičiavimo sistemos
Atsakymas: N = −102
Pozicinės skaičiavimo sistemos: kiekvienas skaitmuo vertas savo reikšmės, padaugintos iš pagrindo laipsnio. Dvejetainėje sistemoje pozicijos vertos 1, 2, 4, 8, 16, …, šešioliktainėje 1, 16, 256, …, o A–F reiškia 10–15. 8 bitų papildomajame kode kairysis bitas vertas −128 vietoj +128; taip saugomi neigiami skaičiai.
Sudėkite vertes
Kiti bitai išlaiko įprastas teigiamas vertes.
−128 + 16 + 8 + 2 = −102
Atsakymas
N = −102
2.Skaičiavimo sistemos
Atsakymas: R = 99
Bitų nustatymas: kiekvienas bitas vertas dvejeto laipsnio (128, 64, …, 1). Vienas šešioliktainis skaitmuo yra lygiai keturi bitai, o 8 bitų dvejetainiame papildomajame kode kairysis bitas vertas −128. Bitinės operacijos atliekamos kiekvienai bito pozicijai atskirai.
Bitas po bito
AND duoda 1 tik ten, kur abu bitai yra 1.
0110 1011
AND 0111 0011
= 0110 0011
Rezultato reikšmė
0110 0011₂ = 99
Atsakymas
R = 99
3.Teiginių logika ir įrodymai
Atsakymas: N = 2
Teisingumo lentelės: formulė su n skirtingų kintamųjų turi 2ⁿ eilučių, po vieną kiekvienam teisingumo reikšmių deriniui (1 = teisinga, 0 = klaidinga). Dirbkite iš vidaus į išorę ir kiekvienai posakio daliai skirkite savo stulpelį. ¬a apverčia reikšmę; a ∧ b yra 1 tik tada, kai abu lygūs 1; a ∨ b yra 0 tik tada, kai abu lygūs 0; a → b yra 0 tik tada, kai a = 1 ir b = 0; a ↔ b yra 1, kai abi pusės lygios.
Kvantoriai ir argumentai: ¬∀x P(x) ≡ ∃x ¬P(x) ir ¬∃x P(x) ≡ ∀x ¬P(x). Perkelkite neigimą į vidų, sukeiskite kiekvieną kvantorių, pro kurį jis praeina, o vidinę formulę paneikite teiginių logikos dėsniais, pavyzdžiui, ¬(a → b) ≡ a ∧ ¬b. Argumentas yra teisingas (galiojantis), kai išvada lygi 1 kiekvienoje eilutėje, kurioje visos prielaidos lygios 1. Viena eilutė su teisingomis prielaidomis ir klaidinga išvada yra kontrapavyzdys ir rodo, kad argumentas negalioja.
Eilutės, kuriose visos prielaidos teisingos
a = 1, b = 1, c = 1: b → a = 1, b ∧ a = 1, a → b = 1, ¬b → ¬a = 1
a = 1, b = 0, c = 1: b → a = 1, b ∧ a = 0, a → b = 0, ¬b → ¬a = 0
a = 1, b = 0, c = 0: b → a = 1, b ∧ a = 0, a → b = 0, ¬b → ¬a = 0
a = 0, b = 0, c = 0: b → a = 1, b ∧ a = 0, a → b = 1, ¬b → ¬a = 1
Išvada
b → a (hipotetinis silogizmas)
Atsakymas
b → a
5.Skaitmeninė logika: elementai, Karno žemėlapiai ir trigeriai
Atsakymas: AB = 01, CD = 10
Karno žemėlapiai: langeliai išdėstyti Grejaus kodu (00, 01, 11, 10), todėl gretimi langeliai, įskaitant esančius per kraštus, skiriasi tiksliai vienu kintamuoju. Sugrupuokite vienetus į 1, 2, 4, 8 arba 16 langelių stačiakampius, kuo didesnius ir kuo mažiau, kol bus padengtas kiekvienas vienetas. Kiekviena grupė yra vienas sandaugos narys: kintamieji, kurie joje nesikeičia. 2ᵏ langelių grupė netenka k kintamųjų. Nesvarbias reikšmes (X) galima naudoti grupėms didinti, bet jų dengti nebūtina. Grupuojant nulius, gaunama minimali POS forma.
Kiekvieno vieneto kaimynai
Vienetas su gretimu vienetu gali įeiti į dviejų ar daugiau langelių grupę.
m6: m7, m4, m2, m14 → 0
Izoliuotas vienetas
m6 = A′BCD′ → AB = 01, CD = 10
Atsakymas
AB = 01, CD = 10
6.Skaitmeninė logika: elementai, Karno žemėlapiai ir trigeriai
Atsakymas: L = 4
Karno žemėlapiai: langeliai išdėstyti Grejaus kodu (00, 01, 11, 10), todėl gretimi langeliai, įskaitant esančius per kraštus, skiriasi tiksliai vienu kintamuoju. Sugrupuokite vienetus į 1, 2, 4, 8 arba 16 langelių stačiakampius, kuo didesnius ir kuo mažiau, kol bus padengtas kiekvienas vienetas. Kiekviena grupė yra vienas sandaugos narys: kintamieji, kurie joje nesikeičia. 2ᵏ langelių grupė netenka k kintamųjų. Nesvarbias reikšmes (X) galima naudoti grupėms didinti, bet jų dengti nebūtina. Grupuojant nulius, gaunama minimali POS forma.
Pagrindiniai implikantai
Didžiausios grupės, kurias galima sudaryti iš vienetų ir X.
C, B, AD
Minimalus dengimas
F = C + B + AD
L = 4
Atsakymas
L = 4
7.Skaičių teorija ir modulinė aritmetika
Atsakymas: 10−1 mod 17 = 12
Atvirkštiniai skaičiai ir kongruencijos: a turi atvirkštinį moduliu n lygiai tada, kai gcd(a, n) = 1. Išplėstinis Euklido algoritmas užrašo 1 = s·n + t·a, ir tada a⁻¹ ≡ t (mod n). Kongruencija a·x ≡ b (mod n), kai gcd(a, n) = 1, turi sprendinį x ≡ a⁻¹·b. Dvi kongruencijos x ≡ r₁ (mod m₁) ir x ≡ r₂ (mod m₂) su tarpusavyje pirminiais moduliais turi vieną sprendinį moduliu m₁·m₂ (Kinų liekanų teorema). Oilerio φ(n) skaičiuoja skaičius nuo 1 iki n, tarpusavyje pirminius su n: φ(n) = n·∏(1 − 1/p).
Išplėstinis Euklido algoritmas
Kiekviena liekana r užrašoma kaip r ≡ t·10 (mod 17).
r = 17, t = 0
r = 10, q = 1, t = 1
r = 7, q = 1, t = −1
r = 3, q = 2, t = 2
r = 1, q = 3, t = −5
Atvirkštinė
1 ≡ −5·10 (mod 17)
x = 12
patikra: 10·12 = 120 = 7·17 + 1
Atsakymas
10−1 mod 17 = 12
8.Skaičių teorija ir modulinė aritmetika
Atsakymas: c = 218
Moduliniai laipsniai ir RSA: aᵏ mod n skaičiuokite kartotiniu kėlimu kvadratu: užrašykite k dvejetainiu pavidalu, keliate kvadratu, po kiekvieno žingsnio redukuokite ir sudauginkite laipsnius, kurių bitas lygus 1. Ferma: aᵖ⁻¹ ≡ 1 (mod p) pirminiam p, nedalijančiam a, todėl rodiklį galima redukuoti moduliu p − 1. RSA: pasirinkite pirminius p ir q, n = p·q ir φ(n) = (p − 1)(q − 1); viešasis rodiklis e tarpusavyje pirminis su φ(n), o privatusis rodiklis yra d = e⁻¹ mod φ(n). Šifruokite c = mᵉ mod n ir dešifruokite m = cᵈ mod n.
Kartotinis kėlimas kvadratu
17 = 16 + 1
1571 ≡ 157 (mod 407)
1572 ≡ 229 (mod 407)
1574 ≡ 345 (mod 407)
1578 ≡ 181 (mod 407)
15716 ≡ 201 (mod 407)
15717 ≡ 157·201 ≡ 218 (mod 407)
Šifrograma
c = 218
Atsakymas
c = 218
9.Algoritmai ir sudėtingumas
Atsakymas: C · O(n²)
Kodėl tai yra atsakymas
Vidinis kūnas iš viso vykdomas n(n + 1) / 2 kartų, o tai vis tiek kvadratinis dydis.
Atsakymas
C · O(n²)
10.Algoritmai ir sudėtingumas
Atsakymas: C · Θ(nlog₂ 3), apie n1,585
Kodėl tai yra atsakymas
Kadangi log₂ 3 ≈ 1,585 > 1, pagal pagrindinę teoremą dominuoja lapai, todėl metodas aplenkia mokyklinį O(n²) metodą.
Atsakymas
C · Θ(nlog₂ 3), apie n1,585
11.Duomenų struktūros
Atsakymas: B · Indeksu 4
Kodėl tai yra atsakymas
10 mod 7 = 3 ir 17 mod 7 = 3; indeksas 3 užimtas, todėl tiesinis zondavimas bando kitą vietą – indeksą 4.
Atsakymas
B · Indeksu 4
12.Duomenų struktūros
Atsakymas: C · Kiekviename kelyje nuo mazgo iki jo palikuonių lapų yra vienodas juodų mazgų skaičius
Kodėl tai yra atsakymas
Raudonai juodo medžio taisyklės: mazgai raudoni arba juodi, šaknis juoda, raudonų mazgų vaikai juodi, o visų kelių juodasis aukštis vienodas, todėl aukštis ≤ 2 log₂(n + 1).
Atsakymas
C · Kiekviename kelyje nuo mazgo iki jo palikuonių lapų yra vienodas juodų mazgų skaičius
13.Grafų teorija
Atsakymas: H = 60
Oileris, Hamiltonas ir medžiai: jungus grafas turi Oilerio ciklą (kiekviena briauna vieną kartą, grįžtama į pradžią), kai kiekvienos viršūnės laipsnis lyginis, ir Oilerio kelią, kuris nėra ciklas, kai lygiai dvi viršūnės turi nelyginį laipsnį; tada kelias eina iš vienos nelyginės viršūnės į kitą. Hamiltono ciklas aplanko kiekvieną viršūnę vieną kartą; Kn jų turi (n − 1)!/2. Medis su n viršūnių turi n − 1 briauną, o jungus grafas su m briaunų turi karkasinį medį, pašalinus m − n + 1 briaunų.
Suskaičiuokite
H = (6 − 1)!/2 = 120/2 = 60
Atsakymas
H = 60
14.Grafų teorija
Atsakymas: briauna GE
Trumpiausi keliai ir karkasiniai medžiai: Dijkstros algoritmas kiekviename etape užfiksuoja po vieną viršūnę: neužfiksuotą viršūnę su mažiausiu preliminariu atstumu. Tada jos atstumas galutinis, o kiekvienas kaimynas v gauna d(v) = min(d(v), d(u) + w(u, v)). Kruskalio algoritmas sudaro minimalų karkasinį medį imdamas briaunas nuo lengvų iki sunkių ir praleisdamas kiekvieną briauną, kuri uždarytų ciklą; Primo algoritmas augina vieną medį iš pradinės viršūnės visada pridėdamas lengviausią iš jo išeinančią briauną. Karkasinis medis su n viršūnių turi n − 1 briauną.
Primo algoritmas
1. BD (2)
2. DF (7)
3. BC (10)
4. AC (4)
5. CE (14)
6. GE (8)
briaunos numeris 6
GE
Atsakymas
briauna GE
15.Duomenų bazės ir SQL
Atsakymas: A · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
Kodėl tai yra atsakymas
GROUP BY customer_id sukuria po vieną grupę kiekvienam klientui, o COUNT(*) suskaičiuoja kiekvienos grupės eilutes.
Atsakymas
A · SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id
16.Duomenų bazės ir SQL
Atsakymas: B · Kai kurių funkcinių priklausomybių gali nebebūti įmanoma patikrinti vienoje lentelėje
Kodėl tai yra atsakymas
Skaidymas į BCNF be nuostolių visada egzistuoja, bet jis gali neišsaugoti priklausomybių; 3NF visada gali būti ir be nuostolių, ir išsauganti priklausomybes.
Atsakymas
B · Kai kurių funkcinių priklausomybių gali nebebūti įmanoma patikrinti vienoje lentelėje
17.Kompiuterių tinklai
Atsakymas: A · 10.1.200.5
Kodėl tai yra atsakymas
Esant /16, pirmieji 16 bitų (10,1) yra tinklo dalis. Juos turi tik 10.1.200.5, todėl jis yra tinkle 10.1.0.0/16.
Atsakymas
A · 10.1.200.5
18.Kompiuterių tinklai
Atsakymas: C · Atstumo vektoriaus; skaidytas horizontas (split horizon) ir atvirkštinis nuodijimas (poison reverse)
Kodėl tai yra atsakymas
Po gedimo atstumo vektoriaus maršrutizatoriai gali toliau vienas kitam skelbti pasenusius maršrutus, lėtai didindami metriką. Skaidytas horizontas, atvirkštinis nuodijimas ir didžiausia metrika tai riboja.
Atsakymas
C · Atstumo vektoriaus; skaidytas horizontas (split horizon) ir atvirkštinis nuodijimas (poison reverse)
19.IPv4 potinkliai
Atsakymas: x = 31
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).
Bloko dydis
23 = 8
Potinklis Nr. 4
tinklas: (4 − 1)·8 = 24
transliacija: 24 + 8 − 1 = 31
Atsakymas
x = 31
20.IPv4 potinkliai
Atsakymas: x = 112
VLSM: kiekvienas LAN gauna mažiausią potinklį, kuriame 2ʰ − 2 ≥ jo mazgų skaičius, t. y. prefiksą 32 − h. Pirmiausia skiriant didžiausius potinklius, kiekvienas blokas lygiuojamas į savo dydžio kartotinį, todėl tinklų adresai gaunami sudedant bloko dydžius.