data science + machine learning & AI Flashcards
wartość 1/8 ma postać w systemie binarnym
1/8 = 0.125
mnożymy przez 2:
0.125•2 = 0.25, 0
0.25•2 = 0.5, 0
0.5•2 = 1, 1
1/8 = 0.001
przykładowo
1/16 = 0.0625
mnożymy przez 2:
0.0625•2 = 0.125, 0
0.125•2 = 0.25, 0
0.25•2 = 0.5, 0
0.5•2 = 1, 1
1/16 = 0.0001
ile informacji zawiera 8 znakowe słowo którego każdy znak jest jedną z liter a, b? Prawdopodobieństwo pojawienia się (niezależnie na każdej pozycji) samogłoski jest dwukrotnie większe od prawdopodobieństwa pojawienia się spółgłoski.
obliczamy pa i pb przy założeniu, że pa=2pb i pa+pb=1
pa = 2/3, pb = 1/3
obliczamy entropię z wzoru H(X) = -pa•log2(pa) - pb•log2(pb) = 0.91
obliczamy ilość informacji z wzoru
info = H(X)•n = 0.91•8 = 7.28 bitów
algorytm to:
Algorytm to skończony ciąg jasno określonych instrukcji lub kroków, które prowadzą do rozwiązania określonego problemu lub wykonania zadania. Kluczowe cechy: skończoność, precyzyjność, wejście, wyjście, efektywność, uniwersalność. Uporządkowany zbiór operacji
język formalny jest:
podzbiór zbioru wszystkich słów nad skończonym alfabetem
syntaktyka języka programowania opisuje:
zasady i reguły dotyczące poprawnej struktury kodu źródłowego napisanego w tym języku. Innymi słowy, syntaktyka definiuje, jak należy pisać instrukcje i jak je organizować, aby były one zrozumiałe dla kompilatora lub interpretera danego języka programowania. Syntaktyka obejmuje składnię, czyli sposób, w jaki symbole, słowa kluczowe i konstrukcje są używane do tworzenia poprawnych programów.
semantyka języka programowania:
definiuje precyzyjnie znaczenie poszczególnych symboli oraz ich funkcję w programie
nawiasy <> w notacji EBNF oznaczają
służą do oznaczania nieterminalnych symboli. Ułatwiają rozróżnienie między nieterminalnymi i terminalnymi symbolami w definicjach gramatyki. Pomagają w czytelności i organizacji reguł gramatycznych.
kodem ASCII możemy zakodować:
dowolny znak z zakresu 0-127 (7 bitowy kod)
kodowanie znaków metodą UTF-8
pozwala zakodować dowolne znaki UNICODE
od czego zależy dokładność liczb zmiennopozycyjnych w komputerze?
od rozmiaru mantysy
rozmiar bitowy pola mantysy wpływa na dokładność zapisu liczb w formacie zmiennoprzecinkowym
cechami kodu uzupełnień do dwóch są:
jednoznaczna reprezentacja 0
łatwe negowanie liczb
jednoznaczna reprezentacja liczb ujemnych i dodatnich: MSB to 0 albo 1
symetryczny zakres liczb: kod uzupełnień do dwóch dla liczby dodatniej jest taki sam jak jej reprezentacja binarna bez znaku.
proste operacje arytmetyczne
wykrywanie przepełnienia
kolejność bitów
dana jest następująca reprezentacja liczb zmiennopozycyjnych: Mantysa zajmuje 20 bitów, wykładnik zajmuje 8 bitów; Wykładnik i mantysa zapisywane są w kodzie U2; Przecinek leży na lewo od mantysy; Z dokładnością do ilu cyfr dziesiętnych można pamiętać liczby w tej reprezentacji?
mantysa zajmuje 20 bitów w kodzie U2, więc pierwszym bitem jest bit znaku, więc 19 określa wartość mantysy
wykładnik zajmuje 8 bitów
zakres liczb zmiennopozycyjnych jest określony przez wartości wykładnika i mantysy, dla 8-bitowego wykładnika zakres jest szeroki, ale istotna jest precyzja reprezentacji zależąca od liczby bitów mantysy
liczbę bitów mantysy n można przeliczyć na liczbę cyfr dziesiętnych d=log10(2n)=nlog10(2)
dla n = 19: d=19•log10(2)=19•0.3010 = 5.72, więc z dokładnością do ok. 5-6 cyfr dziesiętnych
dana jest następująca reprezentacja liczb zmiennopozycyjnych: Mantysa zajmuje 22 bity w tym bit znaku, cecha zajmuje 10 bitów w tym bit znaku. Cecha i mantysa zapisywane są w kodzie U2. Przecinek leży na lewo od mantysy (mantysa jest ułamkiem [1/2..1]). Jaka jest największa możliwa liczba w tym systemie?
mantysa 22 bity (1 bit znaku)
xmax=MmaxB^Emax=(B-B^-(m-1))B^Emax < B^Emax+1
B to podstawa systemu liczbowego (u nas 2)
M mantysa
Emax maksymalna wartość wykładnika, czyli 2^n-1
xmax=(2-2^-(22-1))2(2^9-1)=(2-2^-21)2^511=2^512-2^-490=1.34 razy 10^154
minimalna liczba bitów niezbędna by reprezentować liczby zmiennopozycyjne z zakresu -10^6…10^6 z dokładnością do 2 miejsc znaczących to:
8 bitów
liczba 10010 reprezentowana w systemie U2 ma wartość:
najistotniejszy bit to 1, więc jest ujemna
10010=-2^4+2^1=-16+2=-14
w standardzie IEEE 754 dla liczb zmiennopozycyjnych podwójnej precyzji ile bitów zajmuje mantysa, wykładnik
łącznie 64 bity: mantysa 52 bity, wykładnik 11 bitów, znak liczby 1 bit
bramki logiczne wykonują operacje na:
sygnałach binarnych
(wejściach/układach scalonych/układach cyfrowych)
bramka logiczna NAND wykonuje
wykonuję operację AND, a następnie NOT odwracając wynik
zbiór przerzutników służących do przechowywania informacji cyfrowej to
rejestr
do czego służy stos systemowy?
Do przechowywania zmiennych lokalnych
Stosowany jest przez procesory do chwilowego zapamiętywania rejestrów procesora, do przechowywania zmiennych lokalnych, a także w programowaniu wysokopoziomowym.
liczby stałopozycyjne w komputerze są reprezentowane w kodzie uzupełnień do 2. Dla jakich wartości funkcja abs(x) będzie obliczona prawidłowo?
liczb -127 do 127 (poza -128 bo nie da się zaprezentować 128)
zmienna typu wskaźnik zajmuje 4 bajty. Ile pamięci można zaadresować takim wskaźnikiem?
1 bajt = 8 bitów
wskaźnik ma 4 bajty, więc 4*8=32 bity
za pomocą 32-bitowego wskaźnika można zaadresować 2^32 różnych lokalizacji pamięci, czyli 4 294 967 296 bajtów, czyli około 4GB
jeżeli w programie następuje odwołanie poza obszar tablicy
nieprzewidywalne zachowanie, segmentation fault, przepełnienie bufora, błąd odczytu lub zapisu, nieeoczekeiwane wyniki, błąd wykonania Runtime Error, Index Error, wycieki pamięci
których nawiasów trzeba użyć w Odwrotnej Notacji Polskiej do zmiany kolejności wykonywania działań?
nie trzeba ; )
jaki wynik da następujące wyrażenie zapisane w ONP : 2 3 4 5 + * +
rozpoczynamy od pustego stosu, iterujemy po kolejnych elementach wyrażenia, napotykając liczbę umieszczamy ją w stosie, jeśli napotkamy operator, pobieramy elementy stosu, wykonujemy działanie i wkładamy wynik do stosu
Napotykamy 2: [2]
Napotykamy 3: [2, 3]
Napotykamy 4: [2, 3, 4]
Napotykamy 5: [2, 3, 4, 5]
Napotykamy +: Pobieramy ostatnie elementy stosu, wynik umieszczamy na stosie: 4+5=9: [2, 3, 9]
Napotykamy mnożenie: 9razy3=27: [2, 27]
Napotykamy +: 2+27=29: [29]
Wynik znajduje się na szczycie stosu: 29
co oznacza, że algorytm sortowania tablicy posiada złożoność O(n^2)
wykonywana liczba porównań elementów wynosi n^2
przykłady algorytmów sortowania o złożoności O(n2):
Sortowanie bąbelkowe (Bubble Sort)
Sortowanie przez wstawianie (Insertion Sort)
Sortowanie przez wybieranie (Selection Sort)