ALG)8

ALG)8



298 Rozdział 13. Kodowanie i kompresja danych

W konsekwencji, jeśli będziemy interpretować duże liczby jako wielomiany, to wszelkie operacje na tych liczbach mogą zostać zastąpione algorytmami działającymi na wielomianach.

Aby dodawać i mnożyć duże liczby całkowite, musimy zatem nauczyć się dodawać i mnożyć... wielomiany!

Reprezentacja wielomianu w' C++ jest najprostsza przy użyciu tablic, służących do zapamiętywania współczynników. Wielomian stopnia n i zmiennej x jest ogólnie definiowany następująco:

W(x) - anx" + an_|X"~' +...+a,x + a0.

Obliczanie wartości W(b) dla pewnego b, wydaje się dość kosztowne z uwagi na konieczność wielokrotnego mnożenia i dodawania:

int oblicz_wielomianl(int b, int wfl, int rozm)

(

int res=0,pot=l;

for(int j=rozm-l;j>=0;j—)

(

res+=pot*w[j];    // sumy cząstkowe

pot*=b;    // następna potęga b

ł

return rea;

I

(W przypadku wielomianów o współczynnikach niecałkowitych, należy wszędzie zamienić typ int na double).

Istnieje jednak tzw. schemat Horneraó pozwalający na znacznie prostsze obliczenie W(b)\

\V{h) -    . ((a„b +    )h + a„_2 )h+.. .+a, jb + a0.

Realizacja schematu I lornera może być następująca:

horner.cpp


int oblicz_wielomianż(int a, int w[],int rozm)

int res=w[0);

for(int j=l;j<rozm;res=res*a+w[j++]); return res;

)

const n=5;    II stopień wielomianu

void main()

6 Wynalazcą tej procedury był tak naprawdę isaac Newton, ale historia przypisała ją Homerowi.


Wyszukiwarka

Podobne podstrony:
ALG)4 294 Rozdział 13. Kodowanie i kompresja danych jednak w przypadku zwykłych tekstów, zawierający
ALG00 300 Rozdział 13. Kodowanie i kompresja danych struct wsp *nastepny; }WSPÓŁCZYNNIKI, * WS
ALG02 302 Rozdział 13. Kodowanie i kompresja danych Podnoszenie do potęgi może być zrealizowane popr
ALG04 304 Rozdział 13. Kodowanie i kompresja danych 304 Rozdział 13. Kodowanie i kompresja danych Ry
ALG08 308 Rozdział 13. Kodowanie i kompresja danych •    weź dwa znaki X i Y z najmni
ALG06 306Rozdział 13. Kodowanie i kompresja danych tekst zająłby 3x60=180 bitów. Popatrzmy teraz, ja
ALG)6 296RozdziaH3. Kodowanie i kompresja danych nak jej praktyczna realizacja została opracowana pr
298 (7) ROZDZIAŁ 13___Obróbka cieplno-plastycznaWPROWADZENIE13.1.    Co to jest obrób
ALG)3 Rozdział 13Kodowanie i kompresja danych W chwili obecnej coraz więcej komputerów jest podłącza
ALG)5 13.1. Kodowanie danych i arytmetyka dużych liczb 295 dencji, jednak w praktyce najczęstsze zas
ALG)7 13.1. Kodowanie danych i arytmetyka dużych liczb 297 liczby pierwsze 5, NI i N2 (typowo 100 cy
ALG)9 13.1. Kodowanie danych i arytmetyka dużych liczb 299 ( int w[n]-{1,4,-2,O,7(; // współczynniki
78119 skanuj0346 (3) Rozdział 13. ♦ Współpraca PHP i MySQL 361Łączenie z bazą danych Do nawiązania p
49817 skanuj0348 (3) Rozdział 13. ♦ Współpraca PHP i MySQL else{ echo{ Została wybrana baza danych:
ALG 3 Rozdział 5Struktury danych Nikogo nie trzeba chyba przekonywać o wadze tematu, który zostanie
ALG&4 264 Rozdział 10. Elementy algorytmiki gratów Używając danych z rysunku 10 - 14, algorytm mógłb
ALG03 13.2. Kompresja danych metodą Huflinana 303 Dwa krótkie sygnały oznaczają znak krótki i długi

więcej podobnych podstron