rekurencja i indukcja

Ze względu na specyfikę metody - osobny dział.
lbobiko
Użytkownik
Użytkownik
Posty: 1
Rejestracja: 20 cze 2016, o 18:22
Płeć: Mężczyzna
Lokalizacja: gredzice

rekurencja i indukcja

Post autor: lbobiko »

zadanie 1.3-3 z książki "wprowadzenie do algorytmów "

\(\displaystyle{ T(n)= \begin{cases} 2 &\mbox{ jeśli } n=2 \\ 2T \left( \frac{n}{2} \right) + n &\mbox{ jeśli } n = 2^k \mbox{ dla } k > 1 \end{cases}}\)

Jest \(\displaystyle{ T(n) = n lg n.}\)

mam problem z tym że nie wiem skąd wzięło się że \(\displaystyle{ T(n) = n lg n}\) jest równe klasie złożoności duże O \(\displaystyle{ T(n) = n \log _{2} n}\)
Ostatnio zmieniony 20 cze 2016, o 23:16 przez Jan Kraszewski, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Mruczek
Użytkownik
Użytkownik
Posty: 1114
Rejestracja: 26 paź 2008, o 19:43
Płeć: Mężczyzna
Podziękował: 23 razy
Pomógł: 157 razy

rekurencja i indukcja

Post autor: Mruczek »

Wprost z definicji klasy złożoności duże O.
Awatar użytkownika
Cytryn
Użytkownik
Użytkownik
Posty: 405
Rejestracja: 17 wrz 2016, o 17:04
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 2 razy
Pomógł: 46 razy

rekurencja i indukcja

Post autor: Cytryn »

Z definicji funkcji mamy \(\displaystyle{ T(2) = 2}\), ale wzór z odpowiedzi mówi mi \(\displaystyle{ T(2) = 2 \log 2}\), czy to nie jest błąd?
Mruczek
Użytkownik
Użytkownik
Posty: 1114
Rejestracja: 26 paź 2008, o 19:43
Płeć: Mężczyzna
Podziękował: 23 razy
Pomógł: 157 razy

rekurencja i indukcja

Post autor: Mruczek »

To jest logarytm dwójkowy, jak zwykle w informatyce. Wychodzi na to samo.
Awatar użytkownika
Cytryn
Użytkownik
Użytkownik
Posty: 405
Rejestracja: 17 wrz 2016, o 17:04
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 2 razy
Pomógł: 46 razy

rekurencja i indukcja

Post autor: Cytryn »

Rozumiem. A skąd wiemy, jak zachowuje się funkcja \(\displaystyle{ T}\) na liczbach nieparzystych? Definicja nic o niej nie mówi.
Mruczek
Użytkownik
Użytkownik
Posty: 1114
Rejestracja: 26 paź 2008, o 19:43
Płeć: Mężczyzna
Podziękował: 23 razy
Pomógł: 157 razy

rekurencja i indukcja

Post autor: Mruczek »

Dobra. Rzeczywiście coś jest nie tak z tą definicją funkcji. Wygląda na to, że żeby mówić o dużym O funkcja powinna być określona na liczbach naturalnych, a nie jest. Sama złożoność się zgadza, bo to O szacuje z góry, ale dziedzina nie bardzo, więc chyba faktycznie nie można mówić tutaj o dużym O.
Awatar użytkownika
Zaratustra
Użytkownik
Użytkownik
Posty: 182
Rejestracja: 24 lut 2015, o 16:10
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 68 razy
Pomógł: 6 razy

rekurencja i indukcja

Post autor: Zaratustra »

Mruczek pisze:Dobra. Rzeczywiście coś jest nie tak z tą definicją funkcji. Wygląda na to, że żeby mówić o dużym O funkcja powinna być określona na liczbach naturalnych, a nie jest. Sama złożoność się zgadza, bo to O szacuje z góry, ale dziedzina nie bardzo, więc chyba faktycznie nie można mówić tutaj o dużym O.
Właściwie autor wątku nie powiedział jaka jest dziedzina funkcji... W ogóle autorzy książki mogli tego nie podkreślić - "1.3-3"? "Cormen"? - to gdzieś początek książki - na ogół na tym etapie \(\displaystyle{ n}\) będzie oznaczać ilość danych wejściowych, która jest dyskretna. Czyli mamy funkcje typu \(\displaystyle{ f \colon \mathbb{N} \to \mathbb{R}}\). Jeśli ilość danych jest nieparzysta to zwykle w takim wypadku bierze się podłogę: \(\displaystyle{ \left\lfloor \frac{n}{2} \right\rfloor}\).
Ja bym zakładał niedokładność autorów... To w końcu chyba bardziej informatycy niż matematycy - czyli uznał że dziedzina jest dyskretna. Albo w ogóle funkcję przepisać w ten sposób: \(\displaystyle{ T(n) = 2T \left( \left\lfloor \frac{n}{2} \right\rfloor \right) + n}\) i dopiero się zastanawiać
ODPOWIEDZ