Podstawy informatyki: zestaw na powtórkę

Wzory, najważniejsze kroki metod dla każdego tematu i 20 zadań do ćwiczenia, z pełnymi rozwiązaniami na końcu.

Nowe zadaniaWróć do przedmiotu

W oknie drukowania wybierz „Zapisz jako PDF”, aby zachować kopię na swoim urządzeniu.

1Wzory i metody

Systemy liczbowe

Wagi pozycji
dwójkowy 2k, ósemkowy 8k, szesnastkowy 16k
Na dziesiętny
Σ dk·bk
Z dziesiętnego
dziel przez podstawę, czytaj reszty od dołu do góry
Szesnastkowy ↔ dwójkowy
jedna cyfra szesnastkowa = 4 bity
Kod uzupełnień do dwóch (U2)
odwróć bity i dodaj 1

Rachunek zdań i dowody

Wiersze tablicy prawdy
2ⁿ
Implikacja
p → q ≡ ¬p ∨ q ≡ ¬q → ¬p
Zaprzeczenie implikacji
¬(p → q) ≡ p ∧ ¬q
Równoważność
p ↔ q ≡ (p → q) ∧ (q → p)
Prawa de Morgana
¬(p ∧ q) ≡ ¬p ∨ ¬q, ¬(p ∨ q) ≡ ¬p ∧ ¬q
Prawa rozdzielności
p ∨ (q ∧ r) ≡ (p ∨ q) ∧ (p ∨ r), p ∧ (q ∨ r) ≡ (p ∧ q) ∨ (p ∧ r)
Zaprzeczanie kwantyfikatorów
¬∀x P(x) ≡ ∃x ¬P(x), ¬∃x P(x) ≡ ∀x ¬P(x)
Modus ponens, modus tollens
p → q, p ⊢ q; p → q, ¬q ⊢ ¬p

Metoda

  1. Policz różne zmienne: tablica prawdy ma 2ⁿ wierszy, a zaczyna się od samych jedynek.
  2. Każdej podformule daj osobną kolumnę i wypełniaj kolumny od wewnątrz na zewnątrz.
  3. Stosuj regułę każdego spójnika: → jest 0 tylko dla 1 → 0, ↔ jest 1, gdy obie strony się zgadzają.
  4. Przy równoważnościach porównaj końcowe kolumny wiersz po wierszu; przy wnioskowaniu patrz tylko na wiersze, w których każda przesłanka jest równa 1.
  5. Aby zaprzeczyć zdaniu z kwantyfikatorem, przesuń ¬ do środka, zamień ∀ i ∃ oraz zaprzecz formule wewnętrznej.

Logika cyfrowa: bramki, mapy Karnaugha i przerzutniki

Podstawowe bramki
A·B, A + B, A′, (A·B)′, (A + B)′, A ⊕ B
Reguły algebry Boole’a
X + X′ = 1, X·X′ = 0, X + XY = X, XY + XY′ = X
Prawa de Morgana
(X·Y)′ = X′ + Y′, (X + Y)′ = X′·Y′
Kolejność na mapie Karnaugha
00, 01, 11, 10 (Gray code)
Grupa 2ᵏ komórek
traci k zmiennych
Multiplekser 4-do-1
F = A′B′I0 + A′BI1 + AB′I2 + ABI3
Przerzutniki
D: Q⁺ = D, T: Q⁺ = T ⊕ Q, JK: Q⁺ = JQ′ + K′Q
Liczniki
n-bitowy: 2ⁿ stanów; mod-N: najmniejsze n z 2ⁿ ≥ N; fout = fclk/N
Licznik asynchroniczny (ripple)
fmax = 1/(n·tpd)
Liczniki pierścieniowy i Johnsona
n i 2n stanów

Metoda

  1. Dla układu przechodź od wejść do wyjścia bramka po bramce i zapisuj wartość na każdym przewodzie albo zapisz jego wyrażenie i wypełnij tablicę prawdy.
  2. Przy upraszczaniu wpisz jedynki (a stany nieokreślone jako X) na mapę Karnaugha z wierszami i kolumnami w kodzie Graya: 00, 01, 11, 10.
  3. Pokryj jedynki jak najmniejszą liczbą jak największych grup po 1, 2, 4, 8 lub 16 komórek, zawijając przez brzegi; każda grupa to jeden iloczyn ze zmiennych, które pozostają stałe. Dla postaci POS grupuj zera.
  4. Przy przerzutnikach i licznikach odczytuj wejścia przy każdym aktywnym zboczu zegara, zapisuj stan po każdym zboczu i pamiętaj, że n-bitowy licznik zawija się po 2ⁿ stanach.

Teoria liczb i arytmetyka modularna

Dzielenie z resztą
a = q·n + r, 0 ≤ r < n
Euklides
gcd(a, b) = gcd(b, a mod b)
Najmniejsza wspólna wielokrotność
lcm(a, b) = a·b/gcd(a, b)
Odwrotność
a·a⁻¹ ≡ 1 (mod n), gcd(a, n) = 1
Kongruencja liniowa
a·x ≡ b → x ≡ a⁻¹·b (mod n)
Funkcja φ Eulera
φ(n) = n·∏(1 − 1/p), φ(pᵏ) = pᵏ − pᵏ⁻¹
Fermat
aᵖ⁻¹ ≡ 1 (mod p)
RSA
n = pq, φ = (p − 1)(q − 1), d = e⁻¹ mod φ, c = mᵉ mod n, m = cᵈ mod n

Metoda

  1. Najpierw zredukuj każdą liczbę modulo n; reszty leżą między 0 a n − 1.
  2. Aby znaleźć NWD, dziel wielokrotnie algorytmem Euklidesa; ostatnia niezerowa reszta jest NWD.
  3. Aby znaleźć element odwrotny, uruchom rozszerzony algorytm i zachowaj współczynnik przy a; dodaj n, jeśli jest ujemny.
  4. Rozwiąż a·x ≡ b, mnożąc przez a⁻¹; dwie kongruencje połącz, zapisując x = r₁ + m₁k.
  5. Przy potęgach zapisz wykładnik binarnie i wielokrotnie podnoś do kwadratu; w RSA d = e⁻¹ mod φ(n), gdzie φ(n) = (p − 1)(q − 1).

Teoria grafów

Lemat o uściskach dłoni
Σ deg(v) = 2|E|
Grafy pełne
|E(Kn)| = n(n − 1)/2, |E(Km,n)| = m·n
Graf regularny
|E| = n·k/2
Drzewo i las
|E| = n − 1, |E| = n − c
Liście drzewa
L = 2 + Σ (deg(v) − 2) over deg(v) ≥ 3
Euler
cykl: wszystkie stopnie parzyste; ścieżka: dokładnie 2 stopnie nieparzyste
Cykle Hamiltona w Kn
(n − 1)!/2
Aktualizacja w algorytmie Dijkstry
d(v) = min(d(v), d(u) + w(u, v))
Marsze o długości L
(Mᴸ)ij

Metoda

  1. Zapisz stopień każdego wierzchołka; suma stopni jest równa dwukrotności liczby krawędzi.
  2. W zadaniach o grafach eulerowskich sprawdź, czy graf jest spójny, i policz wierzchołki o nieparzystym stopniu.
  3. Dla drzew użyj n − 1 krawędzi i lematu o uściskach dłoni.
  4. W algorytmie Dijkstry prowadź tabelę tymczasowych odległości i w każdej rundzie zatwierdzaj niezatwierdzony wierzchołek o najmniejszej odległości.
  5. Dla minimalnego drzewa rozpinającego posortuj krawędzie według wagi i pomijaj każdą krawędź zamykającą cykl (Kruskal) albo rozbudowuj jedno drzewo od wierzchołka startowego (Prim).

Podsieci IPv4

Hosty na podsieć
2(32 − prefix) − 2 (/31: 2, /32: 1)
Rozmiar bloku
256 − (mask octet)
Adres sieci
IP AND maska
Adres rozgłoszeniowy
IP OR (NOT maska): wszystkie bity hosta równe 1
Podsieci z n pożyczonych bitów
2n

2Zadania do ćwiczenia

1.Systemy liczboweŚredni
8-bitowy kod U2?−128?64?32?16?8?4?2?1

Zapisz −24 jako 8-bitowy wzór w kodzie U2. Odczytaj ten wzór jako liczbę dwójkową bez znaku: jaka jest jego wartość U dziesiętnie?

N = −248 bit
U =
2.Systemy liczboweTrudny
klikaj bity, aby je ustawić012806403201608040201

Ustaw bity na 8-bitowy wynik działania 1011 1000 << 2. Jaka jest wartość wyniku R w zapisie dziesiętnym?

1011 1000<< 2
R =
3.Rachunek zdań i dowodyŚredni
pqr¬q¬p ∧ ¬q¬((q ∧ ¬r) ↔ (r → p)) ∨ (¬p ∧ ¬q)111?110?101?100?011?010?001?000?

W ilu z 8 wierszy tablicy prawdy ¬((q ∧ ¬r) ↔ (r → p)) ∨ (¬p ∧ ¬q) jest prawdziwe? Nazwij tę liczbę N.

¬((q ∧ ¬r) ↔ (r → p)) ∨ (¬p ∧ ¬q)
N =
4.Rachunek zdań i dowodyTrudny

Ile z 16 wierszy tablicy prawdy czyni ((c ∧ a) → (a → d)) ↔ (¬b ∨ ¬c) prawdziwym? Nazwij tę liczbę N.

((c ∧ a) → (a → d)) ↔ (¬b ∨ ¬c)
N =
5.Logika cyfrowa: bramki, mapy Karnaugha i przerzutnikiŚredni
MUXC′I0​C′I1​CI2​C′I3​ABS1​S0​F

Multiplekser 4-do-1 ma wejścia wyboru S₁ = A i S₀ = B, a wejścia danych podłączone do I₀ = C′, I₁ = C′, I₂ = C, I₃ = C′. Dla ilu z 8 kombinacji A, B i C wyjście F = 1? Znajdź N.

I₀ = C′I₁ = C′I₂ = CI₃ = C′
N =
6.Logika cyfrowa: bramki, mapy Karnaugha i przerzutnikiTrudny
ABCD000111100001111010010302140507X6112X130151140819X11X10

Znajdź minimalną postać SOP funkcji F(A, B, C, D) = Σm(0, 4, 9, 12, 14) + d(6, 10, 11, 13), gdzie d oznacza stany nieokreślone. Ile literałów L zawiera?

F(A, B, C, D) = Σm(0, 4, 9, 12, 14) + d(6, 10, 11, 13)
L =
7.Teoria liczb i arytmetyka modularnaŚredni

Znajdź element odwrotny do 50 modulo 61: liczbę x, dla której 0 < x < 61 oraz 50·x ≡ 1 (mod 61).

a = 50n = 61
50−1 mod 61 =
8.Teoria liczb i arytmetyka modularnaTrudny

47 jest liczbą pierwszą. Użyj małego twierdzenia Fermata, aby znaleźć 1733676 mod 47.

p = 47k = 33676
1733676 mod 47 =
9.Algorytmy i złożonośćŚredni

Jaka jest złożoność czasowa obliczania n-tej liczby Fibonacciego za pomocą tablicy wypełnianej wstępująco (bottom-up)?

  1. AO(n)
  2. BO(log n)
  3. CO(2ⁿ)
  4. DO(n²)
10.Algorytmy i złożonośćTrudny

Co ustaliło twierdzenie Cooka–Levina?

  1. AKażdy problem NP można rozwiązać w czasie wykładniczym
  2. BProblem stopu jest nierozstrzygalny
  3. CP nie jest równe NP
  4. DProblem spełnialności formuł logicznych (SAT) jest NP-zupełny
11.Struktury danychŚredni

Gdzie w kopcu binarnym przechowywanym w tablicy od indeksu 0 znajduje się rodzic węzła o indeksie i?

  1. APod indeksem ⌊i / 2⌋ + 1
  2. BPod indeksem i − 1
  3. CPod indeksem 2i + 1
  4. DPod indeksem ⌊(i − 1) / 2⌋
12.Struktury danychTrudny

Która struktura danych umożliwia pamięć podręczną LRU (least recently used) z operacjami get i put w O(1)?

  1. AWyłącznie stos
  2. BWyłącznie binarne drzewo poszukiwań
  3. CPojedyncza posortowana tablica
  4. DMapa mieszająca połączona z listą dwukierunkową
13.Teoria grafówŚredni

Drzewo ma 4× wierzchołek stopnia 3, 2× wierzchołek stopnia 4, 4× wierzchołek stopnia 5, 2× wierzchołek stopnia 2, a wszystkie jego pozostałe wierzchołki są liśćmi (stopień 1). Ile liści L ma to drzewo?

4 × deg 32 × deg 44 × deg 52 × deg 2
L =
14.Teoria grafówTrudny
ABCDEF

Ile jest marszów zamkniętych o długości 2, które zaczynają się i kończą w E? Marsz może powtarzać wierzchołki i krawędzie. Nazwij tę liczbę N.

M = macierz sąsiedztwaL = 2
N =
15.Bazy danych i SQLŚredni

Tabela a ma 3 wiersze, a tabela b 4 wiersze. Ile wierszy zwraca SELECT * FROM a CROSS JOIN b?

  1. A4
  2. B3
  3. C7
  4. D12
16.Bazy danych i SQLTrudny

Czego wymaga reguła dziennika zapisu z wyprzedzeniem (write-ahead logging, WAL)?

  1. AKażde zapytanie musi zostać zapisane w dzienniku przed parsowaniem
  2. BDziennik zapisuje się dopiero po awarii
  3. CStrony danych muszą być zapisane przed dziennikiem
  4. DRekord dziennika zmiany musi trafić do pamięci trwałej przed zmienioną stroną danych
17.Sieci komputeroweŚredni

Dlaczego przełącznik czasem wysyła ramkę na wszystkie porty oprócz tego, z którego przyszła?

  1. ADocelowego adresu MAC nie ma jeszcze w jego tablicy adresów
  2. BRamka ma błędną sumę kontrolną IP i musi zostać sprawdzona przez każdego hosta
  3. CRamka jest za duża dla jednego portu
  4. DPrzełącznik działa jako router
18.Sieci komputeroweTrudny

Student uruchamia serwer gry na komputerze za domowym routerem z NAT. Znajomi z internetu nie mogą się połączyć. Jakie jest zwykłe rozwiązanie?

  1. ANadanie komputerowi innego adresu MAC, aby router mógł go znaleźć z zewnątrz
  2. BZmiana maski podsieci komputera na /32
  3. CWyłączenie klienta DNS na komputerze
  4. DSkonfigurowanie na routerze przekierowania portów na prywatny adres komputera
19.Podsieci IPv4Średni
255.255.255.24011111111111111111111111111110000bity siecibity hosta

Podsieć używa maski 255.255.255.240. Ile ma użytecznych adresów hostów H?

255.255.255.240
H =
20.Podsieci IPv4Trudny
ostatni oktet = 63012806413211618141211siećhost

Host ma adres 10.20.137.63/26. Jaka jest ostatnia liczba (czwarty oktet) x adresu rozgłoszeniowego jego podsieci?

10.20.137.63/26
x =

3Roztwory

1.Systemy liczbowe

Odpowiedź: U = 232

Pozycyjne systemy liczbowe: każda cyfra jest warta swoją wartość razy potęgę podstawy. W systemie dwójkowym pozycje są warte 1, 2, 4, 8, 16, …, w szesnastkowym 1, 16, 256, …, a A–F oznaczają 10–15. W 8-bitowym kodzie uzupełnień do dwóch skrajny lewy bit jest wart −128 zamiast +128; tak zapisuje się liczby ujemne.

Odwróć i dodaj jeden

24 = 0001 1000
odwrócone: 1110 0111
+1 → 1110 1000

Odczytaj bez znaku

1110 1000₂ = 256 − 24 = 232

Odpowiedź

U = 232
2.Systemy liczbowe

Odpowiedź: R = 224

Ustawianie bitów: każdy bit ma wartość będącą potęgą dwójki (128, 64, …, 1). Jedna cyfra szesnastkowa to dokładnie cztery bity, a w 8-bitowym kodzie uzupełnień do dwóch skrajny lewy bit ma wartość −128. Operacje bitowe działają osobno na każdej pozycji bitu.

Bit po bicie

Przesunięcie w lewo o 2 przesuwa każdy bit o 2 pozycji w lewo; bity, które wypadną z lewego końca, są tracone, a z prawej wchodzą zera.

1011 1000 << 2
= 1110 0000

Wartość wyniku

1110 0000₂ = 224

Odpowiedź

R = 224
3.Rachunek zdań i dowody

Odpowiedź: N = 5

Tablice prawdy: formuła z n różnymi zmiennymi ma 2ⁿ wierszy, po jednym dla każdej kombinacji wartości logicznych (1 = prawda, 0 = fałsz). Pracuj od wewnątrz na zewnątrz i każdej podformule daj osobną kolumnę. ¬a odwraca wartość; a ∧ b jest równe 1 tylko wtedy, gdy oba są równe 1; a ∨ b jest równe 0 tylko wtedy, gdy oba są równe 0; a → b jest równe 0 tylko wtedy, gdy a = 1 i b = 0; a ↔ b jest równe 1, gdy obie strony są równe.

Tablica prawdy wiersz po wierszu

p = 1, q = 1, r = 1: ¬r = 0, q ∧ ¬r = 0, r → p = 1, (q ∧ ¬r) ↔ (r → p) = 0, ¬((q ∧ ¬r) ↔ (r → p)) = 1, ¬p = 0, ¬q = 0, ¬p ∧ ¬q = 0, ¬((q ∧ ¬r) ↔ (r → p)) ∨ (¬p ∧ ¬q) = 1
p = 1, q = 1, r = 0: ¬r = 1, q ∧ ¬r = 1, r → p = 1, (q ∧ ¬r) ↔ (r → p) = 1, ¬((q ∧ ¬r) ↔ (r → p)) = 0, ¬p = 0, ¬q = 0, ¬p ∧ ¬q = 0, ¬((q ∧ ¬r) ↔ (r → p)) ∨ (¬p ∧ ¬q) = 0
p = 1, q = 0, r = 1: ¬r = 0, q ∧ ¬r = 0, r → p = 1, (q ∧ ¬r) ↔ (r → p) = 0, ¬((q ∧ ¬r) ↔ (r → p)) = 1, ¬p = 0, ¬q = 1, ¬p ∧ ¬q = 0, ¬((q ∧ ¬r) ↔ (r → p)) ∨ (¬p ∧ ¬q) = 1
p = 1, q = 0, r = 0: ¬r = 1, q ∧ ¬r = 0, r → p = 1, (q ∧ ¬r) ↔ (r → p) = 0, ¬((q ∧ ¬r) ↔ (r → p)) = 1, ¬p = 0, ¬q = 1, ¬p ∧ ¬q = 0, ¬((q ∧ ¬r) ↔ (r → p)) ∨ (¬p ∧ ¬q) = 1
p = 0, q = 1, r = 1: ¬r = 0, q ∧ ¬r = 0, r → p = 0, (q ∧ ¬r) ↔ (r → p) = 1, ¬((q ∧ ¬r) ↔ (r → p)) = 0, ¬p = 1, ¬q = 0, ¬p ∧ ¬q = 0, ¬((q ∧ ¬r) ↔ (r → p)) ∨ (¬p ∧ ¬q) = 0
p = 0, q = 1, r = 0: ¬r = 1, q ∧ ¬r = 1, r → p = 1, (q ∧ ¬r) ↔ (r → p) = 1, ¬((q ∧ ¬r) ↔ (r → p)) = 0, ¬p = 1, ¬q = 0, ¬p ∧ ¬q = 0, ¬((q ∧ ¬r) ↔ (r → p)) ∨ (¬p ∧ ¬q) = 0
p = 0, q = 0, r = 1: ¬r = 0, q ∧ ¬r = 0, r → p = 0, (q ∧ ¬r) ↔ (r → p) = 1, ¬((q ∧ ¬r) ↔ (r → p)) = 0, ¬p = 1, ¬q = 1, ¬p ∧ ¬q = 1, ¬((q ∧ ¬r) ↔ (r → p)) ∨ (¬p ∧ ¬q) = 1
p = 0, q = 0, r = 0: ¬r = 1, q ∧ ¬r = 0, r → p = 1, (q ∧ ¬r) ↔ (r → p) = 0, ¬((q ∧ ¬r) ↔ (r → p)) = 1, ¬p = 1, ¬q = 1, ¬p ∧ ¬q = 1, ¬((q ∧ ¬r) ↔ (r → p)) ∨ (¬p ∧ ¬q) = 1

Policz wiersze z wartością 1

¬((q ∧ ¬r) ↔ (r → p)) ∨ (¬p ∧ ¬q): 1, 0, 1, 1, 0, 0, 1, 1
N = 5

Odpowiedź

N = 5
4.Rachunek zdań i dowody

Odpowiedź: N = 12

Tablice prawdy: formuła z n różnymi zmiennymi ma 2ⁿ wierszy, po jednym dla każdej kombinacji wartości logicznych (1 = prawda, 0 = fałsz). Pracuj od wewnątrz na zewnątrz i każdej podformule daj osobną kolumnę. ¬a odwraca wartość; a ∧ b jest równe 1 tylko wtedy, gdy oba są równe 1; a ∨ b jest równe 0 tylko wtedy, gdy oba są równe 0; a → b jest równe 0 tylko wtedy, gdy a = 1 i b = 0; a ↔ b jest równe 1, gdy obie strony są równe.

Kolumny

c ∧ a; a → d; (c ∧ a) → (a → d); ¬b; ¬c; ¬b ∨ ¬c; ((c ∧ a) → (a → d)) ↔ (¬b ∨ ¬c)

Podział względem a

a = 1: 6
a = 0: 6
N = 6 + 6 = 12

Odpowiedź

N = 12
5.Logika cyfrowa: bramki, mapy Karnaugha i przerzutniki

Odpowiedź: N = 4

Multiplekser: multiplekser 2ⁿ-do-1 przekazuje na wyjście jedno ze swoich wejść danych; linie wyboru, odczytane jako liczba binarna, wskazują które. Dla multipleksera 4-do-1 z wejściami wyboru S₁S₀ = AB: F = A′B′·I₀ + A′B·I₁ + AB′·I₂ + AB·I₃. Podłączenie wejść danych do 0, 1, C lub C′ sprawia, że multiplekser realizuje dowolną funkcję A, B i C, co jest częstym sposobem budowania logiki w jednym układzie scalonym.

Wyrażenie wyjścia

F = A′B′C′ + A′BC′ + AB′C + ABC′

Wiersze z F = 1

ABC = 000, 010, 101, 110
N = 4

Odpowiedź

N = 4
6.Logika cyfrowa: bramki, mapy Karnaugha i przerzutniki

Odpowiedź: L = 8

Mapy Karnaugha: komórki są ułożone w kodzie Graya (00, 01, 11, 10), więc sąsiednie komórki, także te przez brzegi, różnią się dokładnie jedną zmienną. Grupuj jedynki w prostokąty po 1, 2, 4, 8 lub 16 komórek, jak największe i jak najmniej, aż każda jedynka będzie pokryta. Każda grupa to jeden iloczyn: zmienne, które wewnątrz niej pozostają stałe. Grupa 2ᵏ komórek traci k zmiennych. Stany nieokreślone (X) można wykorzystać, by powiększyć grupy, ale nigdy nie trzeba ich pokrywać. Grupowanie zer daje minimalną postać POS.

Implikanty proste

Największe grupy, jakie można utworzyć z jedynek i X.

BD′, A′C′D′, AC′D, ACD′, AB′D, ABC′
ABCD000111100001111010010302140507X6112X130151140819X11X10

Minimalne pokrycie

F = BD′ + A′C′D′ + AC′D
L = 8

Odpowiedź

L = 8

Istnieje inne grupowanie tego samego rozmiaru; ma tę samą liczbę składników i literałów.

7.Teoria liczb i arytmetyka modularna

Odpowiedź: 50−1 mod 61 = 11

Elementy odwrotne i kongruencje: a ma element odwrotny modulo n dokładnie wtedy, gdy NWD(a, n) = 1. Rozszerzony algorytm Euklidesa zapisuje 1 = s·n + t·a, a wtedy a⁻¹ ≡ t (mod n). Kongruencja a·x ≡ b (mod n) przy NWD(a, n) = 1 ma rozwiązanie x ≡ a⁻¹·b. Dwie kongruencje x ≡ r₁ (mod m₁) i x ≡ r₂ (mod m₂) o względnie pierwszych modułach mają jedno rozwiązanie modulo m₁·m₂ (chińskie twierdzenie o resztach). Funkcja φ(n) Eulera zlicza liczby od 1 do n względnie pierwsze z n: φ(n) = n·∏(1 − 1/p).

Rozszerzony algorytm Euklidesa

Każdą resztę r zapisujemy jako r ≡ t·50 (mod 61).

r = 61, t = 0
r = 50, q = 1, t = 1
r = 11, q = 4, t = −1
r = 6, q = 1, t = 5
r = 5, q = 1, t = −6
r = 1, q = 5, t = 11

Odwrotność

1 ≡ 11·50 (mod 61)
x = 11
sprawdzenie: 50·11 = 550 = 9·61 + 1

Odpowiedź

50−1 mod 61 = 11
8.Teoria liczb i arytmetyka modularna

Odpowiedź: 1733676 mod 47 = 2

Potęgi modularne i RSA: oblicz aᵏ mod n przez wielokrotne podnoszenie do kwadratu: zapisz k binarnie, podnoś do kwadratu, redukuj po każdym kroku i mnóż potęgi, których bit jest równy 1. Fermat: aᵖ⁻¹ ≡ 1 (mod p) dla liczby pierwszej p niedzielącej a, więc wykładnik można redukować modulo p − 1. RSA: wybierz liczby pierwsze p i q, n = p·q i φ(n) = (p − 1)(q − 1); wykładnik publiczny e jest względnie pierwszy z φ(n), a wykładnik prywatny to d = e⁻¹ mod φ(n). Szyfruj wzorem c = mᵉ mod n, a odszyfrowuj wzorem m = cᵈ mod n.

Zredukuj wykładnik

33676 mod 46 = 4
1733676 ≡ 174 (mod 47)

Mała potęga

174 mod 47 = 2

Odpowiedź

1733676 mod 47 = 2
9.Algorytmy i złożoność

Odpowiedź: A · O(n)

Dlaczego to jest odpowiedź

Wypełnienie tablicy od 0 do n wymaga jednego dodawania na element, więc praca jest liniowa zamiast wykładniczej.

Odpowiedź

A · O(n)
10.Algorytmy i złożoność

Odpowiedź: D · Problem spełnialności formuł logicznych (SAT) jest NP-zupełny

Dlaczego to jest odpowiedź

Cook i Levin niezależnie wykazali, że każdy problem z NP redukuje się do SAT w czasie wielomianowym, więc SAT był pierwszym znanym problemem NP-zupełnym.

Odpowiedź

D · Problem spełnialności formuł logicznych (SAT) jest NP-zupełny
11.Struktury danych

Odpowiedź: D · Pod indeksem ⌊(i − 1) / 2⌋

Dlaczego to jest odpowiedź

Dzieci i znajdują się pod 2i + 1 i 2i + 2, więc rodzic i jest pod ⌊(i − 1) / 2⌋; przy indeksowaniu od 1 jest to ⌊i / 2⌋.

Odpowiedź

D · Pod indeksem ⌊(i − 1) / 2⌋
12.Struktury danych

Odpowiedź: D · Mapa mieszająca połączona z listą dwukierunkową

Dlaczego to jest odpowiedź

Mapa mieszająca znajduje węzły w O(1), a lista dwukierunkowa przenosi używane elementy na początek i usuwa elementy z końca w O(1).

Odpowiedź

D · Mapa mieszająca połączona z listą dwukierunkową
13.Teoria grafów

Odpowiedź: L = 22

Euler, Hamilton i drzewa: graf spójny ma cykl Eulera (każda krawędź raz, powrót do startu), gdy każdy wierzchołek ma stopień parzysty, oraz ścieżkę Eulera, która nie jest cyklem, gdy dokładnie dwa wierzchołki mają stopień nieparzysty; ścieżka biegnie wtedy od jednego wierzchołka nieparzystego do drugiego. Cykl Hamiltona odwiedza każdy wierzchołek raz; Kn ma ich (n − 1)!/2. Drzewo o n wierzchołkach ma n − 1 krawędzi, a graf spójny o m krawędziach zachowuje drzewo rozpinające po usunięciu m − n + 1 krawędzi.

Lemat o uściskach dłoni dla drzewa

L + 44 = 2(L + 12) − 2
L = 22

Odpowiedź

L = 22

Skrót: L = 2 + Σ (d − 2) po wierzchołkach o stopniu d ≥ 3.

14.Teoria grafów

Odpowiedź: N = 4

Stopnie: stopień wierzchołka to liczba krawędzi, które się w nim stykają. Każda krawędź ma dwa końce, więc stopnie sumują się do dwukrotności liczby krawędzi: Σ deg(v) = 2|E| (lemat o uściskach dłoni). Liczba wierzchołków o nieparzystym stopniu jest zatem parzysta. Kn ma n(n − 1)/2 krawędzi, graf k-regularny o n wierzchołkach ma nk/2, a drzewo o n wierzchołkach ma n − 1 krawędzi.

Macierz sąsiedztwa

A: 0 1 0 0 0 0
B: 1 0 1 1 1 0
C: 0 1 0 0 1 0
D: 0 1 0 0 1 1
E: 0 1 1 1 0 1
F: 0 0 0 1 1 0

Wspólni sąsiedzi

(M²)EE = 0·0 + 1·1 + 1·1 + 1·1 + 0·0 + 1·1 = 4

Odpowiedź

N = 4
15.Bazy danych i SQL

Odpowiedź: D · 12

Dlaczego to jest odpowiedź

Złączenie krzyżowe daje iloczyn kartezjański, 3 × 4 = 12 wierszy.

Odpowiedź

D · 12
16.Bazy danych i SQL

Odpowiedź: D · Rekord dziennika zmiany musi trafić do pamięci trwałej przed zmienioną stroną danych

Dlaczego to jest odpowiedź

Zapis dziennika najpierw pozwala DBMS po awarii ponowić zatwierdzoną pracę i cofnąć niezatwierdzoną, co wspiera atomowość i trwałość.

Odpowiedź

D · Rekord dziennika zmiany musi trafić do pamięci trwałej przed zmienioną stroną danych
17.Sieci komputerowe

Odpowiedź: A · Docelowego adresu MAC nie ma jeszcze w jego tablicy adresów

Dlaczego to jest odpowiedź

Dla nieznanego adresu unicast przełącznik zalewa (flooding) sieć ramką. Gdy odbiorca odpowie, przełącznik uczy się jego portu z adresu źródłowego MAC.

Odpowiedź

A · Docelowego adresu MAC nie ma jeszcze w jego tablicy adresów
18.Sieci komputerowe

Odpowiedź: D · Skonfigurowanie na routerze przekierowania portów na prywatny adres komputera

Dlaczego to jest odpowiedź

NAT tworzy odwzorowania tylko dla połączeń rozpoczętych od wewnątrz. Reguła przekierowania portów wiąże port publiczny z hostem wewnętrznym, dzięki czemu połączenia przychodzące mogą do niego dotrzeć.

Odpowiedź

D · Skonfigurowanie na routerze przekierowania portów na prywatny adres komputera
19.Podsieci IPv4

Odpowiedź: H = 14

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).

Długość prefiksu

255.255.255.240 = /28

Użyteczne hosty

24 − 2 = 14

Odpowiedź

H = 14
20.Podsieci IPv4

Odpowiedź: x = 63

Podsieci IPv4: adres ma 32 bity. Prefiks /p mówi, ile początkowych bitów wskazuje sieć; pozostałe 32 − p bitów numeruje hosty. Podsieć ma 2³²⁻ᵖ adresów, ale pierwszego (adres sieci) i ostatniego (adres rozgłoszeniowy) nie można przydzielić hostom, więc mieści się 2³²⁻ᵖ − 2 hostów. Wyjątki: /31 (łącze punkt-punkt, RFC 3021) wykorzystuje oba swoje 2 adresy dla hostów, a /32 to jeden adres (pojedynczy host lub loopback).

Rozmiar bloku

26 = 64

Podsieć tego hosta

sieć: ⌊63/64⌋·64 = 0
rozgłoszeniowy: 0 + 64 − 1 = 63
użyteczne hosty: 1 … 62

Odpowiedź

x = 63

ExamProblems · examproblems.com/courses/computer-science-fundamentals