## Zadanie 1 //Zdjecie tresci 1 Generowanie przeniesienia: na podstawie bitów a_i i b_i (niezależnie od przeniesienia c_in) => a_i AND b_i Propagacja przeniesienia: patrzymy na c_in, kiedy jest równe 1 to przeniesiemy jeżeli a_i lub b_i => a_i OR b_i //Zdjecie wzorow do 1 //Zdjecie układu + zdjecie czasu wiersze wykonuja sie równolegle (najpierw cały górny na raz, potem wiersz 1 itd.) rozmiar (liczba bramek) = 2*(n+1) + 3*n/2*log(n) + 2*n (pierwszy wiersz, wszystkie pomiędzy 1 i ostatnim, ostatni wiersz) ## Zadanie 2 //Zdjecie tresc 2 // Zdjecie do zad 2 // Zdjecie legenda do 2 Rozmiar: 2n -> gorne kwadraty liczace gi,pi (n kwadratow kazdy po 2 bramki) 2n -> dolne kwadraty liczace Si (n kwadratow kazdy po 2 bramki) ilosc czarnych kwadratow -> n*logn - (2^0 + 2^1 + 2^2 + ... + 2^(logn-1)) = n*logn - n + 1 każdy czarny ma 3 bramki więc łącznie z czarnych 3*(nlogn - n +1) Zatem łącznie: 4n+3(nlogn - n +1) ## Zadanie 3 //Zdjecie tresc 1 //Zdjecie part 1 //Zdjecie part 2 //Zdjecie part 3 Czas: 2*logn + 1 => O(logn) przejscie 2 razy po drzewie o wysokosci logn oraz wyliczenie sumy na koniec Rozmiar: 1. n bloków "A" => n*4 (4 bramki w bloku "A") 2. ilość bloków "B" dąży do n => "B"* n*(1/2 + 1/4 + 1/8 ...) = "B"*n*1 = n * 5 (5 bramek w bloku "B") 3. Łącznie rozmiar => 4n+5n = 9n ## Zadanie 4 //Zdjecie tresci do 4 //Zdjecie calego ukladu //Zdjecia (legenda) blok C + wzory do 4 c = n/k n - ilosc bitow c - ilosc blokow C k - "szerokosc" bloku C Rozmiar: 1. FA -> 5 bramek => 5*n 2. Bloki C -> w jednym C jest k bloków "1" i około k bloków "2" (blok "1" - 2 bramki, blok "2" - 3 bramki) => k*2 + k*3 = 5k. Bloków c jest n/k więc łącznie n/k * 5k = 5n 3. Bloki B -> każdy blok B ma 5 bramek, a jest ich około c (bo c*(1/2 + 1/4 ...) = c) => więc łącznie 5*c Sumując wychodzi -> 5n+5n+5c = 10n+5c Czas: log(n/m) + log(n/m) + 3m ## Zadanie 5