70331 Str011 (2)

70331 Str011 (2)



18    1. KiUta rsgidnieri elementarnej teorii lierb

Wreszcie misze oszacowanie może być zapisane za pomocą n i m, jeśli pamiętamy wzór na liczbę cyfr, z którego wynika, że k « [log2w] *f I ^

log// log 2


logm log 2


+ 1 i / aa [log2 m] + 1

Przykład 6, Znajdźmy ograniczenie górne liczby operacji na bitach potrzebnych do obliczenia «!.

Rozwiązanie. Użyjemy następującego algorytmu. Najpierw pomnożymy 2 przez 3, potem wynik przez 4, następny wynik przez 5 itd., aż wreszcie dojdziemy do n. W (J — l)-ym kroku (J = 2, 3, ..., n — 1) mnożymy j\ przez j + 1. Mamy więc n — 2 kroków; w każdym kroku mnożymy częściowy iloczyn (tzn. /!) przez następną liczbę. Częściowe iloczyny robią się coraz większe. W najgorszym przypadku możemy przyjąć, że liczba bitów częściowego iloczynu będzie taka jak liczba bitów ostatniego iloczynu, tzn. liczby ni.

Aby znaleźć liczbę bitów iloczynu wykorzystamy to, że liczba bitów w iloczynie dwóch liczb jest albo równa sumie liczb bitów obu czynników, albo jest od tej sumy mniejsza o 1 (porównaj omówienie algorytmu mnożenia). Wynika stąd, żc iloczyn n liczb fc-bitowych ma co najwyżej nk bitów. Zatem, jeśli n jest liczbą fc-bitową - z czego wynika, że każda liczba mniejsza od n ma co najwyżej k bitów - to n\ ma co najwyżej nk bitów.

Wobec tego w każdym zn-2 mnożeń potrzebnych do obliczenia n\ mnożymy liczbę co najwyżej fc-bitową (mianowicie liczbę j + 1) przez liczbę mającą co najwyżej nk bitów (mianowicie liczbę _/!). To wymaga co najwyżej nk2 operacji na bitach. Musimy wykonać to n — 2 razy. Zatem łączna liczba operacji na bitach jest ograniczona przez (n - 2)nk2 = n(n - 2)([log2 n] + l)2. Z grubsza biorąc, to ograniczenie w przybliżeniu wynosi nł(log2«)2.

Przykład 7. Znajdźmy ograniczenie górne liczby operacji na bitach potrzebnych do pomnożenia wielomianu Zatx* stopnia nie większego niż nx przez wielomian LbjXJ stopnia nie większego niż n2, przy czym współczynniki obu wielomianów są liczbami całkowitymi nieujemnymi mniejszymi lub równymi m. Załóżmy, że n2 ^ nv

Rozwiązanie. Aby obliczyć £ a{bp czyli współczynnik przy xv w iloczynie

j+j*»

wielomianów (gdzie 0 < v < nx + n2), potrzebujemy n2 + 1 mnożeń i n2 dodawań. Liczby, które mnożymy, są ograniczone przez m, a liczby, które dodajemy, są ograniczone przez m2; ale ponieważ musimy dodawać kolejne liczby do sumy częściowej tych liczb, musimy przyjąć n2m2 jako ograniczenie górne wielkości dodawanych liczb. Zatem w obliczeniu współczynnika stojącego przy xliczba operacji na bitach wyniesie co najwyżej

(n2 + l)(log2m + l)2 + n2 (log2 (n2m2) + 1).

Ponieważ liczba v może przyjąć jedną z nt + n* *f 1 wartości, więc szukanym ograniczeniem czasu mnożenia wielomianów jest

(«i + n2 + 1)((hz + l)(log 2m + \f + n2(Iog2(n2m2) +1)).

Otrzymamy trochę mniej dokładne ograniczenie, usuwając z tego wzoru jedynki, przez co wzór przyjmie bardziej zwartą postać:

+ (Iogn2 + 21ogm) j.


s/n2 (co


Uwaga. Jeśli przyjmiemy n = nl^n2 oraz założymy, że m ^ 16 i m > yfn2


na ogół jest spełnione w praktyce), to ostatnie wyrażenie może być zastąpione znacznie prostszym 4n2 (log2m)2. Ten przykład świadczy o tym, że na ogół nie istnieje „właściwa odpowiedź” na pytanie o oszacowanie czasu potrzebnego do wykonania danego zadania. Chcemy mieć wynik w postaci względnie prostej funkcji danych (w tym przypadku nvn2 i m), dającej ograniczenie górne, które dla większości danych jest w przybliżeniu tego samego rzędu wielkości co liczba operacji na bitach rzeczywiście potrzebnych w praktyce. Z tego powodu w przykładzie 7 nie chcielibyśmy zastąpić naszego oszacowania przez powiedzmy 4n2m, gdyż dla dużych m dałoby to oszacowanie czasu o wiele rzędów wielkości za duże.

Dotychczas zajmowaliśmy się dodawaniem i mnożeniem liczb ż-bito-wych i /-bitowych. Pozostałe dwa działania arytmetyczne - odejmowanie i dzielenie - mają takie same oszacowania czasu jak odpowiednio dodawanie i mnożenie:

Czas(odęjmowanie liczby jfc-bitowej od liczby /-bitowej) ^ max(£, /);

Czas(dzielenie liczby ^-bitowej przez liczbę /-bitową) < kl.

Dokładniej, odejmowanie wymaga rozszerzenia naszej definicji operacji na bitach tak, by dołączyć operację odejmowania bitu 0 lub 1 od innego bitu 0 lub 1 (uwzględniającej ewentualną „pożyczkę” 1 z poprzedniej kolumny); por. ćwiczenie 8.

Aby przeanalizować dzielenie liczb całkowitych zapisanych w systemie dwójkowym, przyjrzyjmy się ilustracjom takim jak w przykładzie 3. Przypuśćmy, że k ^ / (jeśli k < /, to dzielenie jest trywialne, tzn. iloraz jest zerem, a cała dzielna jest resztą). Znalezienie ilorazu i reszty wymaga co najwyżej k — / -f 1 odejmowań. Każde odejmowanie wymaga / lub / + 1 operacji na bitach; jednak w tym drugim przypadku wiemy, że pierwsza od lewej strony kolumna będzie zawierała bit 0, a więc możemy pominąć tę operację na bitach (traktując ją raczej jak „zaksięgowanie” czegoś, a nie jak obliczenie). Podobnie pomijamy


Wyszukiwarka

Podobne podstrony:
3 (3) 18 Która stwierdzenie wyjaśnia. dlaczego dożylna droga Dodawania leku może być najbardziej nie
stępuje się do pocięcia wszystkich pozostałych elementów w tym pudla wagonu. Operacja ta może być
chir test(5) 18. Które stwierdzenie wyjaśnia, dlaczego dożylna droga podawania łęku może być n
26 (86) odrzuca się całą badaną partię. Przebadany element, niezależnie od wyników próby, nic może b
CCF20091218051 Minimalne zbrojenie dia elementów zginanych {A*;.**) Pole przekroju zbrojenia nie mo
Obraz3 (18) Eksploatacja Rozpoczęcie ruchu maszynyRozpoczęcie ruchu maszynyPraktyki operacyjne Masz
73159 str122 (5) 122 1. ELEMENTY TEORII FUNKCJI ZMIENNEJ ZFSPOLONEJ 17.    S = 7,5. 1
79652 str018 (5) 18 1. ELEMENTY TEORII FUNKCJI ZMIENNEJ ZESPOLONEJ Zadanie 2.7. Przez powierzchnię p
str122 (5) 122 1. ELEMENTY TEORII FUNKCJI ZMIENNEJ ZFSPOLONEJ 17.    S = 7,5. 18. &nb
18 Elementy teorii mnogościDefinicja Dwa zbiory A i B są równe (co symbolicznie zapiszemy A = B), je
Wy 17 Elementy teorii grafów. Hipergrafy 2 Wy 18 Kombinatoryka i elementy analizy
73159 str122 (5) 122 1. ELEMENTY TEORII FUNKCJI ZMIENNEJ ZFSPOLONEJ 17.    S = 7,5. 1
18 20 minut Elementy językaElementy języka, część 1 Przeczytaj poniższy tekst i zdecyduj, które

więcej podobnych podstron