# Zadanie 1 ![image](https://hackmd.io/_uploads/rkZaDpkQA.png) $v = 10^8 m/s$ $s = 2.5km$ $delay = \frac{2.5km}{10^8 m/s} = 0.000025s$ $b = 10Mb/s$ $2*delay = t$ minimalna długość ramki $r$: $t = r / b$ $2 * 0.000025s = \frac{r}{10^7 b/s}$ $500 bitów= r$ # Zadanie 2 ![image](https://hackmd.io/_uploads/SyC6v61XC.png) $P(p, n) = n p * (1 - p)^{n - 1}$ $(fg)' = f'g + fg'$ $((1 - p)^n)' = n (1-p)'(1-p)^{n-1}$ $P(p, n)' = n * (1 - p)^{n - 1} + np * n (1-p)'(1-p)^{n-1}$ $P(p, n)' = n * (1 - p)^{n - 1}(1 - np)$ Jedyne miejsce zerowe w przedziale $p \in(0, 1)$ to $1/n$. $\lim_{n \to \infty} P(\frac{1}{n}, n) = \lim_{n \to \infty} (1 - \frac{1}{n})^{n - 1} =$$= \lim_{n \to \infty}\frac{1}{(1 - \frac{1}{n})} (1 - \frac{1}{n})^{n} = \lim_{n \to \infty} \frac{n}{n - 1} (1 - \frac{1}{n})^{n} = \frac{1}{e}$ # Zadanie 3 ![image](https://hackmd.io/_uploads/rJ1k_6JQA.png) Rozważmy scenariusz, w którym mamy dwa wierzchołki: A i B, które zawsze mają coś do wysłania i często kolidują. Powiedzmy, że oba próbują nadać swoje pakiety jednocześnie, kolidują i A wygrywa, ma teraz do odczekania < 2 rund, z kolei B ma < 4. Teraz A ma większe szanse na wysłanie kolejnych pakietów, a każda przegrana B jeszcze zwiększa tą przewagę i po 16 przegranych kolizjach B porzuca swój pakiet i mówimy, że A przejeło kanał. # Zadanie 4 ![image](https://hackmd.io/_uploads/Syp1_pkQC.png) $M(x) = x^3 + x$ $G(x) = x^2 + x + 1$ $B(x) = x^r \cdot M(x) + S(x)$ $G(x) | B(x)$ $r = 2$ (stopień G) $B(x) = x^5 + x^3 + S(x)$ Suma kontrolna: $S(x) = x$ (bo $x^5 + x^3 + x$ dzieli się przez G) dla $G'(x) = x^7 + 1$ $B(x) = x^{10} + x^8$ Suma kontrolna: $S(x) = x^3 + x$ # Zadanie 5 ![image](https://hackmd.io/_uploads/BJ3l_T17R.png) Teza: $x + 1 | P(x) \iff$ P(x) ma parzystą liczbę składników. Dowód: - Zauważmy, że wielomiany z parzystą liczbą składników $n$ możemy podzielić na $n/2$ wielomianów dwuelementowych w postaci $x^k + x^m = x^k(1 + x^{m - k})$ (dla $k < m$). - Lemat: Wielomiany w postaci $x^m + 1$ dzielą się przez $x+1$ Dowód: Zauważmy, że $x^m + 1 = x^m - 1$ w świecie modulo 2. $x^m - 1 = (x - 1)(x^{m-1} + x^{m - 2} + ... + 1)$ Skoro wszystkie składowe wielomiany dzielą się przez $x+1$, to ich suma też się dzieli. - Dla wielomianów z nieparzystą liczba elementów możemy wyróznić jeden element, wszystkie pozostałe dobrać w pary jak wyżej i okaże się, że cały wielomian się nie dzieli, bo ten wyróżniony element $x^n$ nie dzieli się przez $x + 1$. # Zadanie 7 ![image](https://hackmd.io/_uploads/H1OMu6JQR.png) Każdy bit informacji jest sprawdzany przez unikalną kombinację co najmniej dwóch bitów parzystości. - Jeżeli dokładnie jeden bit informacji zostanie przekłamany mamy dwa bity parzystości, które teraz się nie zgadzają, żeby powiedzieć, który został przekłamany. - Jeżeli dokładnie jeden bit parzystości został przekłamany to możemy sprawdzić parzystość bitów za które odpowiadał i się o tym przekonać. # Zadanie 8 ![image](https://hackmd.io/_uploads/HJN7u617R.png) Błąd dwóch bitów oddalonych od siebie o nie więcej niz 5 bitów można przedstawić jako wielomian szóstego stopnia $x^m(x^k + 1)$ gdzie $k \leq 6$. Wielomian $x^3 + x + 1$ wykryje błędy na takich wielomianach. Przyjrzyjmy się $x^m(x^k + 1)$: - G nie dzieli $x^m$, - G nie dzieli $(x^k + 1)$, bo: - $(x + 1), (x^2 + 1)$ są mniejszego stopnia niż G, - $(x^ 3 + 1) = G(x) - x$, - $(x^ 4 + 1) = G(x) * x - (x^3 + x^2 + x - 1)$, - $(x^5 + 1) = G(x) * (x^2 + 1) + (x^x + x)$, - $(x^6 + 1) = G(x) ^2 + x^2$. # Zadanie 9 ![image](https://hackmd.io/_uploads/rkx4dakX0.png) Odbiorca sprawdza, czy G dzieli wiadomość, jeżeli dzieli to wiadomość jest poprawna, jeżeli nie dzieli to reszta z dzielenia daje informację o tym gdzie wystąpił błąd. # Zadanie 10 ![image](https://hackmd.io/_uploads/Bk24_T1XA.png) (Paradoks urodzinowy) Sposobów na wybranie $2^{m/2}$ różnych liczb m-bitowych (których jest $2^m$) jest $2^m \cdot (2^m - 1) \cdot ... \cdot (2^m - 2^{m/2} + 1)$, czyli ppb tego zdarzenia to około $e^{- \frac{2^m}{2 \cdot 2^m}} = e^{-1/2}$ czyli około 60%. Prawdopodobieństwo zdarzenia przeciwnego, to około 40% (czyli $\Omega (1)$).