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}\)
rekurencja i indukcja
rekurencja i indukcja
Ostatnio zmieniony 20 cze 2016, o 23:16 przez Jan Kraszewski, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Powód: Poprawa wiadomości.
- Cytryn
- 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
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?
-
- 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
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.
- Zaratustra
- 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
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}\).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.
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ć