krajka

download krajka

of 220

Transcript of krajka

  • Matematyka Dyskretna

  • Uniwersytet Marii Curie-SkodowskiejWydzia Matematyki, Fizyki i Informatyki

    Instytut Informatyki

    Matematyka Dyskretna

    Andrzej Krajka

    Moim wspaniaym dzieciomAsi i Tomkowi

    Lublin 2011

  • Instytut Informatyki UMCSLublin 2011

    Andrzej KrajkaMatematyka Dyskretna

    Recenzent: Ryszard Smarzewski

    Opracowanie techniczne: Marcin DenkowskiProjekt okadki: Agnieszka Kumierska

    Praca wspfinansowana ze rodkw Unii Europejskiej w ramachEuropejskiego Funduszu Spoecznego

    Publikacja bezpatna dostpna on-line na stronachInstytutu Informatyki UMCS: informatyka.umcs.lublin.pl.

    WydawcaUniwersytet Marii Curie-Skodowskiej w LublinieInstytut Informatykipl. Marii Curie-Skodowskiej 1, 20-031 LublinRedaktor serii: prof. dr hab. Pawe Mikoajczakwww: informatyka.umcs.lublin.plemail: [email protected]

    DrukESUS Agencja Reklamowo-Wydawnicza Tomasz Przybylakul. Ratajczaka 26/861-815 Poznawww: www.esus.pl

    ISBN: 978-83-62773-05-3

  • Wstp

    Matematyka dyskretna jest to zbiorcza nazwa rnych dziaw matema-tyki, zajmujcych si badaniem struktur niecigych czyli skoczonych lubco najwyej przeliczalnych. Matematyka dyskretna staa si popularna wostatnich latach dziki zastosowaniom w informatyce, ktra w sposb natu-ralny zajmuje si jedynie strukturami skoczonymi (skoczona reprezentacjaliczb, skoczona ilo operacji w jednostkach czasu komputera - taktowaniezegara).

    Skrypt ten powsta na podstawie wykadw, ktre prowadziem na kie-runkach informatycznych Uniwersytetu im. Marii Curie-Skodowskiej w Lu-blinie. Z zaoenia jest poszerzeniem wykadu o niektre elementy, ktre zpowodu ogranicze czasowych nie mogy by w sposb kompletny wyoone.Tak wic niektre twierdzenia, podawane na wykadzie bez dowodw, tutajs wprowadzone z dowodami i konieczn do tych dowodw teori.

    Nie zakadam jednak, e ta ksika jest pen monografi wszystkichdziaw matematyki dyskretnej. Poniewa w planie zaj studenci majtakie przedmioty jak podstawy rachunku prawdopodobiestwa, wstp dologiki i teorii mnogoci czy te elementy logiki i arytmetyki komputerw,wic powanie zostay okrojone, a nawet zlikwidowane, takie dziay mate-matyki dyskretnej jak algebra, logika, teoria mnogoci, rachunek prawdopo-dobiestwa i kombinatoryka. Co wicej, ze wzgldu na plan studiw, w tymskrypcie zakadam znajomo niektrych poj z tych dziaw (rozdzia 7.1naley traktowa jako raczej przypomnienie a nie formalne wprowadzenieprawdopodobiestwa). Z drugiej strony, poniewa studenci na drugim rokustudiw maj przedmiot o nazwie teoria grafw, dlatego w ramach kursu- Matematyka Dyskretna teoria grafw zostaa zredukowana do podstawo-wych poj. Traktujemy j tutaj jako wprowadzenie do wspomnianego wyejprzedmiotu, chocia i tak w tym skrypcie zagadnienia zwizane z grafami sznacznie bardziej rozbudowane w porwnaniu z wykadem. Rwnie duailo przedmiotw takich jak podstawy programowania spowodowaa usu-nicie z wykadu elementw dotyczcych sprawdzania poprawnoci logicznejprogramw.

    To co zostao to gwnie problemy zwizane z rekurencjami, teoria liczb,

  • vi Wstp

    sumy i metody rnicowe, funkcje cakowitoliczbowe czy podstawy teoriigrafw. Rwnie wprowadzam, w do okrojonym stopniu, rozdzia doty-czcy kombinatoryki, algorytmw sortowania i haszowania. Przy tworzeniuwykadu pojawi si problem wprowadzenia pojcia ilorazu rnicowego.Najbardziej naturalne wprowadzenie polega na zastosowaniu analogii dorniczkowania i cakowania, jednak o ile pochodna jest obecna w programieszk rednich, o tyle pojcie caki w wikszoci szk w chwili obecnej jestusunite. W wykadzie utrzymaem analogi z cakami, poniewa pojciecaki na I roku studiw jest rwnolegle wprowadzane na analizie jak rwnieuywane (nieformalnie) na niektrych przedmiotach fizycznych. Zdaj sobiejednak spraw z tego, e rozdzia 2.7.3 mona skonstruowa bez analogii zcak

    Wykad staraem si konstruowa na zasadzie od rozwaenia pewnychprzykadw do formuowania prawidowoci. Chocia zarwno podrcznikjak i wykad mgby mie logicznie spjniejsz form (na przykad wszyst-kie metody rozwizywania rwna rekurencyjnych zgromadzone w jednymmiejscu), myl jednak, e staoby si to ze szkod dla dydaktyki.

    Algorytmy podawane s albo opisowo, albo w zblionym do Pascala pseu-dokodzie. W szczeglnoci, w porwnaniu z Pascalem czsto zamiast begini end uywa bdziemy nawiasw { i } (rwnie uywajc tych nawiaswdo komentarzy) lub podobnych do Pythona wci, zwikszajc przez to czy-telno programu. Opuszcza te bdziemy swko var w deklaracjach a dooperacji czenia acuchw uywa bdziemy operatora &.

  • Oznaczenia

    x y - min{x, y}x y - max{x, y}f(n) g(n) - f(n) i g(n) maj ten sam wspczynnik przyrostu, tzn. ist-

    nieje taka staa C, e |f(n)| C|g(n)| i |g(n)| C|f(n)|f(n) g(n) - f(n) jest asymptotyczna do g(n) jeli limn f(n)g(n) = 1f(n) g(n) - limn f(n)g(n) = 0X - moc zbioru X (dla skoczonych zbiorw jest to ilo elementw zbioru

    X)m n - liczby m i n s wzgldnie pierwsze, tzn. NWD(m,n) = 1P Q - wielomiany P i Q s wzgldnie pierwsze, tzn. NWD(P,Q) = 1a b mod m - a przystaje do b modulo m jeli (a mod m) = (b mod m)

    lub rwnowanie m|(a b)bxc - funkcja podoga rwna max{c Z : c x}dxe - funkcja sufit rwna min{c Z : c x}{x} - funkcja cz uamkowa rwna x bxcxm - m ta dolna silnia od x definiowana jako

    xm =

    x(x 1)(x 2)...(x m+ 1), dla m > 0,1, dla m = 0,

    1(x+1)(x+2)(x+3)...(x+(m)) , dla m < 0.

    (rk

    )- uoglniony symbol Newtona, dla k N rwny rkk! podczas gdy dlak Z

    (rk

    )= 0

    m|n - m jest dzielnikiem n tzn. istnieje liczba cakowita k taka, e n = kmP |Q - wielomian P jest dzielnikiem Q tzn. istnieje wielomian R taki, e

    Q = PRm||n -m jest dokadnym dzielnikiem n tzn. istnieje liczba pierwsza p i liczba

    r takie, e m = pr|n i pr+1 6 |nx mod y - operacja modulo rwna x mod y = x ybxy c dla y 6= 0 oraz

    x mod 0 = xAmin, Asr, Amax, A

    imin, A

    isr, A

    imax - ilo przesuni rekordw potrzebnych

    przy dodawaniu nowego rekordu minimalnie, przecitnie i w najgorszym

  • viii Oznaczenia

    przypadku. Litery z indeksem i dotycz przesuwania nie rekordw aleindeksw

    A(z) - ([a0, ..]) funkcja tworzca cigu to funkcja A(z) = [ao, a1, a2, ...] =ao + a1z + a2z

    2 + ... =

    k0 akzk, n-ty wyraz funkcji yworzcej rwnyan zapisujemy jako zn(A(z))

    Bn - bukiet jest grafem zawierajcym jeden wierzchoek i n ptli w tymwierzchoku

    C - zbir liczb zespolonychCn - graf n-cykl to graf zawierajcy n wierzchokw V (Cn) = {v1, v2, ..., vn}

    i dokadnie n krawdzi E(Cn) = {{v1, v2}, {v2, v3}, ..., {vn1, vn}, {vn, v1}}.Ckn - ilo kombinacji bez powtrze k elementw ze zbioru n elementowego,

    Ckn =(nk

    )Ckn - ilo kombinacji z powtrzeniami k elementw ze zbioru n elemento-wego, Ckn =

    (n+k1k

    )(cn...c1c0, c1...ck)p - zapis liczby cyframi w ukadzie o podstawie liczenia

    p rwnyn

    i=k cipi

    Df(x), f (x), df(x)dx - operator rniczkowania rwny limh0f(x+h)f(x)

    hDn - dipol jest grafem zawierajcym dwa wierzchoki i n krawdzi czcych

    te wierzchokiD

    (q)n - cig rekurencyjny wspomagajcy rozwizanie problemu Flawiusza:D

    (q)0 = 1, D

    (q)n = d qq1D

    (q)n1e, n 1

    degP (x) - stopie wielomianu P (x) - najmniejsza liczba naturalna n taka,e 4nP (x) 0.

    degG(v) - stopie wierzchoka v w grafie G, jest to ilo krawdzi do ktrychnaley v

    4f(x) - operator rnicowy rwny f(x+ 1) f(x)E - operator przesunicia, Ef(x) = f(x+ 1)E(G) - zbir krawdzi grafu GEX - warto oczekiwana zmiennej losowej XG - graf pusty (, )G(V1, V2) - graf dwudzielny jest to graf ktrego zbir wierzchokw mo-

    na podzieli na dwa podzbiory takie, e adne dwa wierzchoki z tegosamego podzbioru nie s poczone krawdzi

    Hn - n-ta liczba harmoniczna Hn =n

    k=11k

    I(A) - indykator zdarzenia A, funkcja rwna 1 dla A, i rwna 0 dla 6 A

    IG - lista krawdzi grafu G, lista na ktrej bezporednio podajemy wszystkiekrawdzie grafu

    indegG(v) - stopie wchodzcy wierzchoka v w grafie skierowanym G, jestto ilo krawdzi ktre kocz si v

    Jk(n) rekurencja Flawiusza

  • Oznaczenia ix

    Kn - graf kompletny to graf prosty skadajcy si z n wierzchokw i kra-wdzi czcych kade dwa wierzchoki

    Kr1,r2 - peny graf dwudzielny jest to graf ktrego zbir wierzchokw mo-na podzieli na dwa podzbiory liczebnoci odpowiednio r1 oraz r2 takie,e adne dwa wierzchoki z tego samego podzbioru nie s poczone kra-wdzi a zbir krawdzi zawiera wszystkie krawdzie czce wierzcho-ki jednego podzbioru z wierzchokami drugiego podzbioru. Analogiczniedefiniujemy grafy trjdzielne Kr1,r2,r3 itd.

    LG - lista incydencji grafu G. Lista dla kadego wierzchoka v, w ktrejprzechowujemy zbir wierzchokw poczonych krawdzi z v

    ln - liczba obszarw w problemie pizzy ln = 1 +n(n+1)

    2 , n 0LCG(M,a, b, ) - liniowy generator liczb pseudolosowych Lehmera tworzo-

    ny wg. wzoru rekurencyjnego Xn = (aXn1 + b) mod M, n > 1, zzainicjowan w jaki sposb wartoci Xo

    M(p) - liczba Mersennea (wynosi 2p 1).MG - macierz ssiedztwa [mi,j] grafu G, mi,j oznacza ilo krawdzi grafu

    G czcych i-ty i j-ty wierzchoekN - zbir liczb naturalnych, o ile nie zostanie to wyranie stwierdzone za-

    wsze z 0N(, n) - ilo elementw w widmie Spec() nie wikszych ni nNWmin, NWsr, NWmax, NW

    imin, NW

    isr, NW

    imax - ilo przejrzanych rekor-

    dw potrzebnych do znalezienia poszukiwanego rekordu (minimalna, prze-citna i najgorsza) gdzy tego rekordu nie znalelimy. Litery z indeksemi dotycz przesuwania nie rekordw ale indeksw

    NWD(P,Q) - najwkszy wsplny dzielnik wielomianw P i Q, zakadamy,e zawsze najwyszy wspczynnik wielomianu NWD(P,Q) wynosi 1

    NWD(m,n) - najwikszy wsplny dzielnik licz m i n rwny max{k : k|mk|n

    NWW (m,n) - najmniejsza wsplna wielokrotno liczbm i n rwnamin{k :m|k n|k}

    O(f(n)) - symbol O, g(n) = O(f(n)) gdy CnN |f(n)| C|g(n)|o(f(n)) - symbol o, g(n) = o(f(n)) gdy limn

    g(n)f(n) = 0

    outdegG(v) - stopie wychodzcy wierzchoka v w grafie skierowanym G,jest to ilo krawdzi zaczynajcych si od v

    P (A|B) - (P [A|B]) prawdopodobiestwo zajcia zdarzenia A pod warun-kiem, e wiemy i zaszo zdarzenie B

    Pn - ilo permutacji bez powtrze Pn = n!Pn1,n2,...,nkn - ilo permutacji z powtrzeniami (n1, n2, ..., nk) gdzie n = n1+

    n2 + ...+ nk wtedy Pn1,n2,...,nkn =n!

    n1!n2!...nk!,

    P 1,2,...,n - ilo podziaw zbioru {1, 2, ..., n} na i zbiorw liczebnocii, 1 i n przy czym n = 1+2+...+n wynosi n!1!2!...n!(1!)1 (2!)2 ...(n!)n

  • x Oznaczenia

    P (n, k) - ilo przedstawie liczby n jako suma k skadnikwPet - to graf Petersena jest to graf skonstruowany z dwch rozcznych

    5-cykli {u0, u1, u2, u3, u4} oraz {v0, v1, v2, v3, v4} poczone miedzy sobkrawdziami {ui, v2i mod 5}, i = 0, 1, 2, 3, 4}

    Pomin, Posr, Pomax - ilo porwna z elementami cigu w algorytmachsortowania (minimalna, przecitna i najgorsza)

    Pwmin, Pwsr, Pwmax - ilo przesuni lub zamian elementw cigu w danejmetodzie sortowania (minimalna, przecitna, najgorsza)

    Q - zbir liczb wymiernych,Qd - graf d-wymiarowy hiperszecian to graf zawierajcy 2d wierzchokw

    ktre moemy nazwa kodami Graya tak, e kody rnice sie na jednejpozycji s poczone krawdzi

    R - zbir liczb rzeczywistychS(n, k) - liczba Stirlinga II rodzaju, jest to ilo podziau zbioru n elemen-

    towego na k klas, spenia rekurencj S(n+1, k) = S(n, k1)+kS(n, k),dla 1 k < n, oraz S(n, 1) = S(n, n) = 1, n 1

    s(n, k) - liczba Stirlinga I rodzaju, jest to ilo rozkadw zbioru n elemen-towego na k cykli, spenia rekurencj s(n+1, k) = s(n, k1)+ns(n, k),dla 1 k < n oraz s(n, 1) = (n 1)!, s(n, n) = 1, n 1

    SCn - graf n-cieka to graf zawierajcy n wierzchokw V (SCn) = {v1, v2, ..., vn}i dokadnie n 1 krawdzi E(SCn) = {{v1, v2}, {v2, v3}, ..., {vn1, vn}}

    Spec() - widmo liczby jest to zbir {bc, b2c, b3c, b4c, ...},Speci() - i-ty element widma Spec().T (L) - optymalne drzewo binarne dla cigu wag L (np. skonstruowane al-

    gorytmem Huffmana)U(K) - rozkad jednostajny na zbiorze K, tzn. dla kadego x K jest

    P [U(K) = x] = 1K

    Umin, Usr, Umax, Uimin, U

    isr, U

    imax - ilo przesuni rekordw potrzebnych przy

    usuwaniu nowego rekordu minimalnie, przecitnie i w najgorszym przy-padku. Litery z indeksem i dotycz przesuwania nie rekordw ale indek-sw

    V (G) - zbir wierzchokw grafu GV kn - ilo wariacji bez powtrze k elementw ze zbioru n elementowego,

    V kn =n!

    (nk)!Vkn - ilo wariacji z powtrzeniami k elementw ze zbioru n elementowego,Vkn = n

    k

    V ar(X) - wariancja zmiennej losowej XWmin,Wsr,Wmax,W

    imin,W

    isr,W

    imax - ilo przejrzanych rekordw potrzeb-

    nych do znalezienia poszukiwanego rekordu (minimalna, przecitna inajgorsza). Litery z indeksem i dotycz przesuwania nie rekordw aleindeksw

  • Oznaczenia xi

    Wn - graf n-koo to Cn1 cykl z wierzchokami V (Cn1) = {v1, v2, ..., vn1}z dodanym jednym wierzchokiem vn ktry ma krawdzie czce zkadym z z wierzchokw V (Cn1)

    Z - zbir liczb cakowitych = 0, 57721 56649 01533... sta Eulera(G) - spjno wierzchokowa grafu G, jest to najmniejsz liczb usunitych

    wierzchokw powodujcych rozspjnienie grafu(G) - spjno krawdziowa grafu G, jest to najmniejsz liczb usunitych

    krawdzi powodujcych rozspjnienie grafun ilo porwna w metodzie sortowania quicksort(n) - funkcja Eulera, oznacza ilo spord liczb {1, 2, ..., n1} tych liczb,

    ktre s wzgldnie pierwsze z nG - liczba chromatyczny grafu G to najmniejsza ilo kolorw potrzeba do

    pomalowania wierzchokw grafu tak aby ssiednie wierzcho ki miayrne kolory

    G - indeks chromatyczny grafu G to najmniejsz ilo kolorw potrzebnychdo pomalowania krawdzi tak, aby adne dwie krawdzie maj ce wsplnywierzchoek nie byy tego samego koloru

    - macierz incydencji [i,j ] grafu G, wierszami s krawdzie a kolumnamiwierzchoki, jeli krawd wychodzi z danego wierzchoka to piszemy wodpowiedniej kolumnie (1), jeli do niego wchodzi piszemy (+1), jeliwierzchoek nie naley do krawdzi piszemy 0, jeli jest to ptla wasnapiszemy 2

    - przestrze zdarze elementarnych - zdarzenie elementarne

  • Spis treci

    Wstp v

    Oznaczenia vii

    1 Rwnania rekurencyjne 11.1. Zasada indukcji matematycznej . . . . . . . . . . . . . . . . . 21.2. Przykady rekurencji. . . . . . . . . . . . . . . . . . . . . . . 51.3. Metoda repertuaru . . . . . . . . . . . . . . . . . . . . . . . . 11

    2 Sumy 172.1. Oznaczenia i definicje . . . . . . . . . . . . . . . . . . . . . . 182.2. Metoda czynnika sumacyjnego . . . . . . . . . . . . . . . . . 202.3. Wasnoci sumowania . . . . . . . . . . . . . . . . . . . . . . 222.4. Liczby harmoniczne . . . . . . . . . . . . . . . . . . . . . . . 232.5. Sumy wielokrotne . . . . . . . . . . . . . . . . . . . . . . . . . 252.6. Rne metody obliczania sum . . . . . . . . . . . . . . . . . . 282.7. Rachunek rnicowy . . . . . . . . . . . . . . . . . . . . . . . 32

    3 Funkcje cakowitoliczbowe 413.1. Podoga i sufit . . . . . . . . . . . . . . . . . . . . . . . . . . 423.2. Widmo liczby . . . . . . . . . . . . . . . . . . . . . . . . . . . 463.3. Rekurencje z funkcjami podoga i sufit . . . . . . . . . . . . . 473.4. Dziaanie dwuargumentowe mod . . . . . . . . . . . . . . . . 523.5. Generatory liczb pseudolosowych . . . . . . . . . . . . . . . . 543.6. Zapisy liczb naturalnych w rnych podstawach liczenia . . . 56

    4 Teoria liczb 614.1. Podzielno, NWD i NWW . . . . . . . . . . . . . . . . . . . 624.2. Liczby pierwsze . . . . . . . . . . . . . . . . . . . . . . . . . . 654.3. Reprezentacja liczb wymiernych - drzewo Sterna - Brocota . 704.4. Kongruencje . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734.5. Funkcja Eulera i algorytm RSA . . . . . . . . . . . . . . . . 76

  • xiv SPIS TRECI

    5 Kombinatoryka 815.1. Permutacje, kombinacje, wariacje . . . . . . . . . . . . . . . . 825.2. Podziay zbioru i liczby Stirlinga . . . . . . . . . . . . . . . . 865.3. Wspczynniki dwumianowe . . . . . . . . . . . . . . . . . . . 90

    6 Funkcje tworzce 976.1. Splot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 986.2. Rozwizywanie rekurencji za pomoc funkcji tworzcych . . . 1006.3. Algebra wielomianw rzeczywistych . . . . . . . . . . . . . . . 106

    7 Wstp do analizy algorytmw 1197.1. Prawdopodobiestwo dyskretne . . . . . . . . . . . . . . . . . 1207.2. Asymptotyka . . . . . . . . . . . . . . . . . . . . . . . . . . . 1257.3. Algorytmy sortowania . . . . . . . . . . . . . . . . . . . . . . 1297.4. Problem rozmieszczenia rekordw w pamici . . . . . . . . . . 137

    8 Grafy 1538.1. Podstawowe pojcia i problem reprezentacji . . . . . . . . . . 1548.2. Grafy nieskierowane . . . . . . . . . . . . . . . . . . . . . . . 1588.3. Grafy skierowane . . . . . . . . . . . . . . . . . . . . . . . . . 1778.4. Drzewa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1798.5. Zastosowania teorii grafw . . . . . . . . . . . . . . . . . . . . 188

    Bibliografia 193

    Wykaz tabel 196

    Wykaz rysunkw 198

    Wykaz algorytmw 199

    Wykaz osb 201

    Indeks 203

  • Rozdzia 1

    Rwnania rekurencyjne

    1.1. Zasada indukcji matematycznej . . . . . . . . . . . . . 21.2. Przykady rekurencji. . . . . . . . . . . . . . . . . . . . 51.3. Metoda repertuaru . . . . . . . . . . . . . . . . . . . . 11

  • 2 1. Rwnania rekurencyjne

    1.1. Zasada indukcji matematycznej

    Przykad 1.1.1. Udowodnij, e dla dowolnej liczby naturalnej n > 0, liczba11n 3n jest podzielna przez 8.

    Dowd.Krok 1. n = 1 Liczba 111 31 = 8 jest podzielna przez 8.Krok 2. Zamy, e dla pewnego n > 0 oraz pewnej liczby naturalnej

    k mamy 11n 3n = 8k. Wtedy 11n+1 3n+1 = 11 (3n + 8k) 3n+1 =88k + (11 3) 3n = 88k + 8 3n jest rwnie liczb podzieln przez 8.

    Std wnioskujemy tez.

    Zasad indukcji matematycznej moemy wic sformuowa nastpujco

    Zasada indukcji matematycznej. Niech S(n), n N , bdzie jakimstwierdzeniem logicznym (to znaczy takim, o ktrym moemy powiedzie, ejest prawdziwe lub faszywe). Jeeli1. S(0) jest prawdziwe,2. dla kadej liczby naturalnej k 1: z prawdziwoci S(k1) wynika praw-

    dziwo zdania S(k),to zdanie S(n) jest prawdziwe dla wszystkich liczb naturalnych N .

    Krok 1 nazywamy krokiem pocztkowym a krok 2 krokiem indukcyj-nym. Obrazowo dziaanie indukcji matematycznej mona przedstawi naprzykadzie uoonych kostek domina. Jeeli przewrci si pierwsza kostka(krok pocztkowy) i wszystkie kostki s tak ustawione blisko siebie, e prze-wrcenie dowolnej kostki spowoduje przewrcenie nastpnej, to wszystkiekostki domina si przewrc. Jednak w tym klasycznym przykadzie nigdynie jestemy w stanie uoy wszystkich nieskoczenie wielu kostek domino(ycia by nie wystarczyo) a jednak dla tego podzbioru zasada indukcjimatematycznej dziaa. Zasada indukcji matematycznej ma wiele rnychwariantw. Na przykad dla naszych kostek mamy:

    Zasada indukcji matematycznej (i). Niech S(n) bdzie stwierdze-niem logicznym, takim e1. dla pewnej liczby naturalnej ko jest prawdziwe zdanie S(ko),2. dla kadej liczby naturalnej k > ko i k < k1: z prawdziwoci S(k 1)

    wynika prawdziwo zdania dla S(k).Wtedy zdanie S(n) jest prawdziwe dla wszystkich liczb naturalnych n {ko, ko + 1, ..., k1}.

    W terminach zbiorw rwnowanym sformuowaniem jest na przykad:

    Zasada Indukcji Matematycznej (ii).Jeeli X N jest jakim nie-pustym podzbiorem liczb naturalnych,(i) do ktrego naley liczba ko, tzn., ko X

  • 1.1. Zasada indukcji matematycznej 3

    (ii) oraz X wraz z kad liczb naturaln k ko zawiera rwnie kolejnliczb k + 1 , tzn.

    kkok X k + 1 X,

    to wtedy zbir X zawiera wszystkie liczby naturalne n ko, tzn. X N\{0, 1, 2, ..., ko 1}

    Przykad 1.1.2. Czasem nie docenia si kroku pocztkowego. Zwrmy u-wag, e w ewidentnie faszywym stwierdzeniu n = n 3 krok indukcyjnyjest speniony bo k = (k 1) + 1 = (k 1) 3 + 1 = k 3 a mimo to nieistnieje adna liczba naturalna dla ktrej to stwierdzenie jest prawdziwe.

    Problem 1.1.1. Co by byo, gdyby by speniony krok indukcyjny dla wszys-tkich naturalnych n i istniaa chocia jedna liczba naturalna dla ktrej takiejak w Przykadzie 1.1.2 stwierdzenie byoby prawdziwe?

    Przykad 1.1.3. Chcemy dowie twierdzenie, e kada liczba naturalnawi eksza od 1 albo jest pierwsza albo mona j przedstawi jako iloczyn liczbpierwszych. Liczba 2 jest pierwsza a wic krok pocztkowy jest speniony.Jeli jednak wemiemy liczb 118973 to informacja, e 118972 jest pierwszalub jest iloczynem liczb pierwszych nic nam nie daje. Musimy mie silniej-sze zaoenie. Dla dowolnej liczby zamy, e nie tylko poprzedni liczbale i wszystkie poprzednie mona tak przedstawi. Wtedy albo k jest liczbpierwsz, albo jest zoona, to znaczy, e jest iloczynem dwch liczb i oraz jtakich, e 1 < i, j < k a poniewa z zaoenia indukcyjnego kada z nich jestalbo pierwsza albo jest iloczynem liczb pierwszych, wic i k spenia tez.

    Moemy teraz sformuow uyt w powyszym przykadzie zasad:

    Zasada indukcji matematycznej zupenej. Niech S(n), n N , b-dzie jakim stwierdzeniem logicznym dla ktrego1. S(0) jest prawdziwe,2. dla kadej liczby naturalnej k > 1: z prawdziwoci S(0), S(1), ..., S(k1)

    wynika prawdziwo zdania dla S(k).Wtedy zdanie S(n) jest prawdziwe dla wszystkich liczb naturalnych N .

    lub rwnowane sformuowanie w terminach zbiorw:

    Zasada Indukcji Zupenej. Jeeli X jest jakim niepustym zbioremliczb naturalnych, ktry wraz z kadym pocztkowym fragmentem zbioru Npostaci {0, 1, 2, 3, ..., k1} zawiera rwnie kolejn liczb k, tzn.

    kN (jeeli

    l

  • 4 1. Rwnania rekurencyjne

    Problem 1.1.2. Co jest nieprawidowego w nastpujcym rozumowaniu:Chcemy dowie e wszystkie samochody kosztuj tyle samo. Mamy jakijeden samochd i widzimy jego cen C1 a wic krok pocztkowy jest spe-niony, Zamy, e mamy zbir k samochodw o cenach C1, C2, ..., Ck. Po-niewa w zbiorze C1, C2, ..., Ck1 wszystkie ceny s identyczne a w zbiorzeC2, C3, ..., Ck te wszystkie ceny s identyczne wic i C1, C2, ..., Ck s iden-tyczne, a wic i krok indukcyjny jest prawdziwy. A przecie wystarczy siprzej do salonu samochodowego?

    Problem 1.1.3. Czy i jak mona sprawdzi, za pomoc indukcji matema-tycznej, wasno ktra zachodzi dla:

    (a) wszystkich liczb naturalnych podzielnych przez 3?(b) wszystkich liczb pierwszych?(c) wszystkich liczb cakowitych?(d) wszystkich liczb wymiernych?(e) wszystkich liczb niewymiernych?

    Zasad indukcji matematycznej uywamy najczciej wtedy, gdy odga-dujemy wynik albo gdy znamy zalenoci pomidzy k-tym a poprzednimielementami.

    Problem 1.1.4. Niech bdzie dany cig taki, e pierwszym jego wyrazemjest F1 = 1, drugim F2 = 1, a kady nastpny jest sum dwch bezporedniopoprzednich. Jak mona zapisa t zaleno? Czy z podanego stwierdzeniapotrafimy wyliczy kady wyraz cigu? Jak to mona udowodni?

    Problem 1.1.5. Zamy, e mamy algorytm

    Algorytm 1.1. Suma S(n)

    r e a l Function S(n : i n t e g e r ) ;s : r e a l ;i : i n t e g e r ;s :=0;f o r i=1 to n s t ep 1

    s :=s+2 s q r t ( s )+1;re turn ( s ) ;

    gdzie funkcja sqrt() oznacza pierwiastek kwadratowy. Ile wyniesie S(20)po wyjciu z tej ptli? Jak mona wypisa zaleno sn od sn1 i jak torwnanie rekurencyjne mona rozwiza?

  • 1.2. Przykady rekurencji. 5

    1.2. Przykady rekurencji.

    W Problemie 1.1.5 podalimy algorytm obliczania pewnego cigu. Po-rwnajmy ten algorytm z nastpujcymi dwoma algorytmami:

    Algorytm 1.2. Suma S(n) - drugi sposb

    r e a l Function S(n : i n t e g e r ) ;i f n=0 then

    re tu rn (0)e l s e

    r e tu rn (S (n1)+2sq r t (S (n1) )+1) ;

    oraz

    Algorytm 1.3. Suma S(n) - trzeci sposb

    r e a l Function S(n : i n t e g e r ) ;r e tu rn nn ;

    Rozwaan we wszystkich trzech algorytmach rekurencj jest rekurencja

    {s0 = 1,sn = sn1 + 2

    sn1 + 1 dla n 1,

    natomiast jej rozwizaniem sn = n2, n 0, (sprawd indukcyjnie).Widzimy wic, e rwnania rekurencyjne zwizane s z ptlami w jzy-

    kach programowania i mona je zawsze implementowa za pomoc pewnegozestawu ptli (zob. Algorytm 1.1).

    Moemy rwnie rwnanie rekurencyjne zaimplementowa (zob. Algo-rytm 1.2) jako funkcj rekurencyjn (to znaczy tak, ktra sama siebiewywouje). W przypadku procedur/funkcji rekurencyjnych istnieje szeregpuapek, na ktre dowiadczony programista powinien zwraca uwag. Tu-taj, na przykad, do wyliczenia S(n) potrzebne jest dwukrotne obliczenie tejsamej wartoci S(n 1), a wic dwa razy wywouje si obliczajc to samoprocedur. Przy dalszych wywoaniach bd ten si bardzo szybko kumuluje.Bd w tym algorytmie jest oczywisty, jednak s algorytmy, gdzie dublujesi obliczanie tych samych wartoci, ale zweryfikowanie tego jest trudne.Rekurencja w programowaniu moe te dramatycznie zwikszy zoonoobliczeniow. Ponadto rekurencja zawsze zwiksza pamiciowe zapotrzebo-wanie programu (chyba e zostanie uyta moliwa w pewnych przypadkachoptymalizacja zwana rekursj ogonow), gdy wymaga ona zapamitaniam.in. adresw powrotu, pozwalajcych programowi zorientowa si doktrego miejsca ma wrci po zakoczeniu jednego z wywoa rekurencyj-

  • 6 1. Rwnania rekurencyjne

    nych. Niezaprzeczaln zalet rekurencji jest przejrzysto programw, ktrez niej korzystaj.

    W Algorytmie 1.3 wykorzystano rozwizanie tego rwnania rekurencyj-nego.

    Oczywicie najoptymalniejszy pod kadym wzgldem jest Algorytm 1.3.

    Rwnanie rekurencyjne jest to rwnanie, w ktrym znana jest pewnailo pocztkowych wyrazw cigu (so, s1, s2, ..., sk), a oglny wyraz sn wyli-czany jest w oparciu o znajomo kilku lub wszystkich poprzednich wyrazw(so, s1, s2, ..., sn1).

    Rozwizanie rwnania rekurencyjnego jest to zapisanie wyrazu sn zwar-tym wzorem zalenym tylko od argumentu n. Rozwizanie rwnania reku-rencyjnego zazwyczaj znacznie skraca i upraszcza obliczanie dowolnego n-tego elementu.

    Przykad 1.2.1. Silnia n! Definiujemy 0! = 1, n! = 1 2 3 ... n, n 1.Aby jednak komputer by w stanie efektywnie wyliczy silni, potrzebna jestinna definicja: {

    s0 = 1,sn = nsn1 dla n 1,

    wtedy sn = n!, n 0. Czy ta defincja jest poprawna (por. z zasad indukcjimatematycznej)? Co bdzie, jak w tej definicji zmienimy so = 1 na so = 0lub so = 12?

    Przykad 1.2.2. Cigi arytmetyczne i geometryczne. Cig nazywa-my arytmetycznym jeeli rnica kadego wyrazu i wyrazu poprzedniego ci-gu jest staa, rwna r:{

    a0 = ,an = an1 + r = a0 + nr dla n 1.

    Sum cigu arytmetycznego liczymy ze wzoru:

    sn = sn1 + an = sn1 + a0 + nr = (n+ 1)+n(n+ 1)

    2r dla n 0.

    Analogicznie cig nazywamy geometrycznym, jeeli iloraz kadego wyrazuprzez wyraz poprzedni jest stay rwny q:{

    a0 = ,an = qan1 = qn dla n 1.

    Sum cigu geometrycznego liczymy ze wzoru

    sn = sn1 + an = 1 qn+11 q dla n 0.

  • 1.2. Przykady rekurencji. 7

    Przykad 1.2.3. Problem cyfr. Jak wiele jest acuchw n-cyfrowychzawierajcych parzyst liczb 0? Niech an bdzie iloci takich acuchwn-cyfrowych. Aby otrzyma z acucha n 1 cyfrowego acuch n cyfrowynaley doda 0 do ktrego z 10n1 an1 acuchw nie zawierajcychparzystej liczby 0 albo doda jedn z 9 cyfr do ktrego z an1 cigw. Stdmamy{

    a1 = 9,an = (10

    n1 an1) + 9an1 = 10n1 + 8an1 dla n 1, (1.2.1)

    a std a4 = 7048. Jakie jest oglne rozwizanie tej rekurencji? (zob. Tabela1.7)

    Przykad 1.2.4. Wiea w Hanoi. (E. Lucas, 1883)

    Rysunek 1.1. Wiea w Hanoi.

    U zarania czasu Bg umieci 64 zote krki na jednej z trzech diamen-towych iglic tak, e krki najniej pooone miay najwiksze promienie ate najwyej pooone najmniejsze promienie (zob. Rys. 1.1). Nastpnie Bgpoleci grupie mnichw przeoenie tych krkw na drug iglic (B), ale takby: w jednym ruchu przenosi tylko jeden krek, krek wikszy nigdy nie moe lee na krku mniejszym, mona posugiwa si trzeci iglic C.Mnisi pracuj od zarania dziejw dzie i noc ... . Przeoenie jednego

    krka zajmuje im 1 sek. Jak mona to zrobi i ile czasu im to zajmie?(Wedug legendy nastpi wtedy koniec wiata). Niech HANOI(A,B, n) ozna-cza zbir ruchw jakie naley wykona przenoszc n krkw z A do B gdzieC moe by swobodnie wykorzystywany, C moe by pusty albo zawieraprki wiksze od wszystkich przenoszonych prkw. Przeniesienie krka zA do B oznacza bdziemy przez A B.Dla n=0 nie trzeba nic robi:HANOI(A,B,0)=Dla n=1 mamy jeden ruch A B :HANOI(A,B,1)={A B}

  • 8 1. Rwnania rekurencyjne

    Dla n=2 mamy trzy ruchy A C,A B,C B :HANOI(A,B,2)=HANOI(A,C,1)HANOI(A,B,1)HANOI(C,B,1)={A C,A B,C B}Dla n=3 potrzeba 7 ruchw: najpierw przenosimy dwa grne krki na C(A B,A C,B C) nastpnie najwikszy krek z A przenosimyna B (A B) a nastpnie 2 krki z C przenosimy na B (C A,C B,A B):HANOI(A,B,3)=HANOI(A,C,2)HANOI(A,B,1)HANOI(C,B,2)={A B,A C,B C,A B,C A,C B,A B}Dla n=4 potrzeba 15 ruchw:HANOI(A,B,4)=HANOI(A,C,3)HANOI(A,B,1)HANOI(C,B,3)={A C,A B,C B,A C,B A,B C,A CA B,C B,C A,B A,C B,A C,A B,C B}Z tych przykadw widzimy jak mona to zrobi:

    HANOI(A,B, 0) = ,HANOI(A,B, n) = HANOI(A,C, n 1) HANOI(A,B, 1)

    HANOI(C,B, n 1), dla n 1,a std liczba niezb ednych przeoe hn spenia:{

    ho = 0,hn = hn1 + 1 + hn1 = 2hn1 + 1, dla n 1.

    Obliczajc kilka pierwszych elementw tak okrelonego cigu otrzymujemy:

    Tabela 1.1. Ilo ruchw potrzebnych na przeniesienie prkw w problemie wieyz Hanoi

    n 0 1 2 3 4 5 6 7 8 9 10 11 12hn 0 1 3 7 15 31 63 127 255 511 1023 2047 4095

    eby rozwiza to rwnanie rekurencyjne dodajmy do obu stron drugiegorwnania 1 i zrbmy podstawienie un = hn + 1, n 0, wtedy{

    uo = ho + 1 = 1,un = hn + 1 = 2hn1 + 2 = 2un1, dla n 1,

    czyli {uo = 1,un = 2un1, dla n 1,

    a to jest rwnanie rekurencyjne cigu geometrycznego (porwnaj z Przyka-dem 1.2.2), czyli un = 2n a std hn = 2n 1, n 0.

  • 1.2. Przykady rekurencji. 9

    Problem 1.2.1. Problemy zwizane z wie z Hanoi. Jak postpo-wa, jeli mamy do dyspozycji cztery a nie trzy prty? Jak wyglda rekuren-cja gdy mamy 2n krkw z ktrych kade dwa s tych samych rozmiarw?

    Przykad 1.2.5. Problem pizzy. (Proste na paszczynie.)Jaka jest najwiksza moliwa liczba ln obszarw wyznaczonych przez n

    prostych na paszczynie? (Jak najmniejsz liczb ruchw podzieli pizz naln kawakw?)

    Sprawdmy najpierw kilka pocztkowych wartoci.(i) Gdy nie ma adnej prostej obszar jest jeden lo = 1.(ii) Jedna prosta tworzy zawsze dwa rne obszary l1 = 2.(iii) Kadc drug prost (byle nie rwnoleg do pierwszej) otrzymujemyl2 = 4 obszary.

    Jednak wcale nie jest ln = 2n bo l3 = 7!

    Tabela 1.2. Ilo obszarw ktre mona uzyska w problemie pizzy.

    n 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14ln 1 2 4 7 11 16 22 29 37 46 56 67 79 92 106

    Zauwamy, e nowa prosta zwiksza ilo obszarw o k jeli przecinadokadnie k 1 poprzednich prostych i to w nowych punktach przeci. Zdrugiej strony dwie proste mog si przeci co najwyej w jednym punkcie iprzecinaj si o ile nie s rwnolege. Widzimy zatem, e najwicej obszarwdostaniemy kadc kolejne proste w ten sposb, aby adne dwie nie byyrwnolege i adne trzy nie przecinay si w jednym punkcie. Otrzymujemynastpujce rwnanie rekurencyjne:{

    lo = 1,ln = ln1 + n, dla n 1,

    Porwnujc ten wzr ze wzorem na sum cigu arytmetycznego (Przykad1.2.2 ao = 0, = so = 1, r = 1) otrzymujemy ln = 1 +

    n(n+1)2 , n 0.

    Problem 1.2.2. Inne problemy zwizane z problemem pizzy: Wy-znacz najwiksz liczb kawakw ograniczonych n konfiguracjami (tniemynoem o ksztacie):

    (a) konfiguracja ktw (w ksztacie litery V),(b) konfiguracja dwch okrgw stycznych wewntrznie,(c) konfiguracja dwch okrgw stycznych zewntrznie,(d) konfiguracja trzech okrgw stycznych wewntrznie,(e) konfiguracja dwch prostych rwnolegych,(f) konfiguracja trzech prostych rwnolegych.

  • 10 1. Rwnania rekurencyjne

    Przykad 1.2.6. Problem Flawiusza. 41 ydowskich powstacw zamkni-tych jest przez Rzymian w jaskini. Aby nie dosta si w rce wrogw powsta-cy postanowili sami si zabi. Ustawili si w okrg z wyrnion jedn osobi zaczli liczy od tej wyrnionej osoby co 3 osob, zabijajc j. Na kt-rej pozycji naley si ustawi, aby zosta ostatni osob i unikn mierci?Oglnie mamy n osb i eliminujemy co k - t osob. Na ktrej pozycji Jk(n)naley si ustawi, aby pozosta? Bdziemy w skrcie pisa J(n) = J2(n) izajmiemy si w tym rozdziale tylko rekurencj J(n) (inne przypadki zostanomwione w rodziale 3.2).

    Rozwaajc pocztkowe przypadki otrzymujemy:

    Tabela 1.3. Numer pozycji na ktrej zostanie ywa osoba w problemie Flawiusza

    n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15J(n) 1 1 3 1 3 5 7 1 3 5 7 9 11 13 15

    Rysunek 1.2. Eliminacje po pierwszym obiegu okrgu w Problemie Flawiusza.

    5

    643

    62162n2n-1

    .

    .

    .

    .

    .

    .

    .. . .

    687

    663

    21n

    .

    .

    .. .

    4

    +

    AAAU

    ZZZ}

    5

    643

    62612n+162n

    2n-1

    .

    .

    .

    .

    .

    .. . .

    687

    662

    1n

    n-1.

    .

    .. .

    3

    ?@@@R +

    ZZZ}

    Rozwaajc przenumerowanie po pierwszym obiegu okrgu (Rys. 1.2)otrzymujemy rekurencj:

    J(1) = 1,J(2n) = 2J(n) 1, dla n 1,J(2n+ 1) = 2J(n) + 1, dla n 1.

    Niech n bdzie dowoln liczb naturaln a m, l bd liczbami okrelo-nymi nierwnociami 0 l < 2m, 2m n < 2m+1. Liczby te, dla ustalonegon s zadane jednoznacznie (m = blog2 nc, l = n 2m). W tym przykadzie

  • 1.3. Metoda repertuaru 11

    wszdzie przez m = m(n) i l = l(n) bdziemy rozumie tak otrzymane z nliczby.

    Twierdzenie 1.2.1. Zachodzi J(n) = J(2m + l) = 2l + 1, n 1.Dowd. (Indukcja wzgldem m)Krok 1. m = 0.Wtedy n = 20 + l a l < 20 czyli l = 0 oraz n = 1 a J(1) = 1 = 2 0 + 1.Krok 2. Zakadamy prawdziwo twierdzenia dla pewnego m i dowo-

    dzimy prawdziwoci dla m+ 1.Rozwamy dwa przypadki:Przypadek 1. l jest liczb parzyst. Wtedy

    J(2m+1 + l) = 2J(2m +l

    2) 1 = 2(2 l

    2+ 1) 1 = 2l + 1.

    Przypadek 2. l jest liczb nieparzyst.

    J(2m+1 + l) = 2J(2m +l 12

    ) + 1 = 2(2 l 12

    + 1) + 1 = 2l + 1.

    a wic teza zachodzi te dla m+ 1 i dowolnego 0 l < 2m+1.

    Uwaga 1.2.2. System binarny. Niech n bdzie przedstawione w ukadziebinarnym (dwjkowym) n = (bmbm1...b2b1bo)2, gdzie najbardziej znaczcybit bm = 1. Wtedy l = (0bm1...b2b1b0)2 oraz

    J(n) = 2l + 1 = (bm1bm2...b2b1b01)2 = (bm1bm2...b2b1b0bm)2.

    Jest to wic cykliczne przesunicie reprezentacji binarnej.

    1.3. Metoda repertuaru

    Uoglnijmy rekurencj Flawiusza (skomplikujmy problem) rozwaajcklas rwna rekurencyjnych zalenych od parametrw , , R.

    f(1) = ,f(2n) = 2f(n) + , dla n 1,f(2n+ 1) = 2f(n) + , dla n 1.

  • 12 1. Rwnania rekurencyjne

    Oczywicie do zwykej rekurencji Flawiusza wracamy przyjmujc = =1, = 1. Obliczmy kilka pocztkowych wyrazw:

    Tabela 1.4. Kolejne rozwizania uoglnionego problemu Flawiusza

    n f(n)

    1 2 2+ 3 2+ 4 4+ 35 4+ 2 + 6 4+ + 27 4+ 38 8+ 79 8+ 6 + 10 8+ 5 + 211 8+ 4 + 3

    n f(n)

    12 8 + 3 + 413 8 + 2 + 514 8 + + 615 8 + 716 16 + 1517 16 + 14 + 18 16 + 13 + 219 16 + 12 + 320 16 + 11 + 421 16 + 10 + 522 16 + 9 + 6

    n f(n)

    23 16 + 8 + 724 16 + 7 + 825 16 + 6 + 926 16 + 5 + 1027 16 + 4 + 1128 16 + 3 + 1229 16 + 2 + 1330 16 + + 1431 16 + 15

    ......

    Zauwamy, e

    f(n) = A(n) +B(n) + C(n) , n 1.Oglna strategia przy rozwizywaniu rwna rekurencyjnych metod reper-tuaru moe by opisana nastpujco: Uoglnij rwnanie rekurencyjne uzaleniajc je od parametrw Ustal parametry dla ktrych znasz rozwizania Pocz przypadki szczeglne aby znale rozwizanie oglne.? Pierwszy przypadek szczeglny f(n) = 1. Wtedy

    f(1) = 1 = ,f(2n) = 1 = 2 + , dla n 1,f(2n+ 1) = 1 = 2 + , dla n 1,

    czyli = 1, = = 1 - mona znale parametry stanowice roz-wizanie tego rwnania niezalene od n. Jest to wic dobre rozwizanie.Std otrzymujemy:

    1 = A(n)B(n) C(n), n 1. (1.3.2)? Drugi przypadek szczeglny f(n) = n. Wtedy

    1 = ,2n = 2n+ , dla n 1,2n+ 1 = 2n+ , dla n 1,

  • 1.3. Metoda repertuaru 13

    a std = = 1, = 0 co daje:

    n = A(n) + C(n), n 1. (1.3.3)? Przypadek szczeglny (zy) f(n) = n2. Wtedy

    1 = ,4n2 = 2n2 + , dla n 1,4n2 + 4n+ 1 = 2n2 + , dla n 1,

    i nie istniej parametry i niezalene od n i takie, aby powyszerwnanie zachodzio dla wszystkich n.

    ? Trzeci przypadek szczeglny f(n) = 2m(n). Wtedy uwzgldniajcnierwnoci:

    20 1 < 2,2m(n)+1 2n < 2n+ 1 < 2m(n)+2,

    otrzymujemy

    20 = ,2m+1 = 2m+1 + , dla n 1,2m+1 = 2m+1 + , dla n 1,

    a std = 1, = = 0, a wic

    A(n) = 2m, gdzie n = 2m + l, n 1. (1.3.4)Ze wzorw (1.3.2)-(1.3.4) otrzymujemy:

    A(n) = 2m,1 = A(n)B(n) C(n),n = A(n) + C(n), n 1,

    a std A(n) = 2m, B(n) = 2m l 1, C(n) = n 2m = l, a wicf(n) = 2m + (2m l 1) + l

    i wstawiajc = = 1, = 1, otrzymujemyJ(n) = 2m 2m + l + 1 + l = 2l + 1.

    Wida byo w tym przykadzie, e o ile funkcje f(n) = 1 czy f(n) = ndo atwo odgadn, o tyle funkcja f(n) = 2m jest bardzo specyficzna itrudno zgadn, e j naley wstawi.

    Podamy teraz inny przykad zastosowania metody repertuaru.

  • 14 1. Rwnania rekurencyjne

    Przykad 1.3.1. Rozwimy rwnanie rekurencyjne:{T (1) = 3,T (n) = 3T (n 1) + n 2, n 2.

    Uoglniamy to rwnanie do{f(1) = ,f(n) = 3f(n 1) + n+ , n 2,

    i rozwaajc przypadki szczeglne otrzymujemy:

    Tabela 1.5. Wyniki metody repertuaru dla rekurencji.

    f(n) = 1 f(n) = n f(n) = 3n{1 = ,1 = 3 + n+ ,

    {1 = ,n = 3n 3 + n+ ,

    {3 = ,3n = 3n + n+ ,

    = 1, = 0, = 2,

    = 1, = 2, = 3,

    = 3, = 0, = 0,

    1 = A(n) 2C(n), n = A(n) 2B(n) + 3C(n), 3n = 3A(n),

    skd

    A(n) = 3n1,B(n) = 543

    n1 34 n2 ,C(n) = 3

    n112 , n 1,

    co prowadzi do

    f(n) = 3n1 + (5

    43n1 3

    4 n

    2) +

    3n1 12

    , n 1,

    czyli

    T (n) = 3n +1

    43n1 +

    1

    4 n

    2, n 1.

    Przykad 1.3.2. Metoda ta, mimo najszczerszych chci, moe nie prowa-dzi do rozwizania. Rozwamy Przykad 1.2.3. Uoglniamy rwnanie reku-rencyjne (1.2.1) do{

    a(1) = ,a(n) = a(n 1) + 10n1, n 2. (1.3.5)

  • 1.3. Metoda repertuaru 15

    i rozwaajc przypadki szczeglne otrzymujemy:

    Tabela 1.6. Zastosowanie metody repertuaru do problemu cyfr.

    a(n) = 1 a(n) = 2n a(n) = 10n{1 = ,1 = + 10n1,

    {21 = ,2n = 2n1 + 10n1,

    {101 = ,10n = 10n1 + 10n1,

    = 1, = 1, = 0,

    = 2, = 2, = 0,

    = 10, = 0, = 10,

    1 = A(n) +B(n), 2n = 2A(n) + 2B(n), 10n = 10A(n) + 10C(n),

    otrzymalimy wic sprzeczny ukad rwna. Przenalizujmy dlaczego sitak stao. Rozwaajc kolejne rozwizania sparametryzowanego ukadu o-trzymujemy:

    Tabela 1.7. Rozwizania uoglnionego problemu cyfr

    1 2 10+ 3 102+ 10 + 24 103+ 102 + 102 + 3...

    ...k

    k1j=1 10

    kjj1 + k1...

    ...

    a jak wida rozwizania te nie s liniowymi kombinacjami , , .

    Uwaga 1.3.1. Skd si bierze taka metoda postpowania z rwnaniami re-kurencyjnymi? W zasadzie ide, ktra ley u podstaw metody repertuarujest zgadywanie. Jeli jednak mamy konkretne rwnanie rekurencyjne tn =fn(t1, ..., tn1), n 0, to odgadn, czy rozwizaniem jest tn = 3.257n2 0.45, czy tn = 3.251n2 0, 44 czy te z innymi wspczynnikami liczbowy-mi jest prawie niemoliwe. Jednak mamy inn sytaucj, gdy zastanawiamysi nie nad konkretnym rozwizaniem, ale nad tym, z jakiej klasy funkcjewchodz w skad rozwizania? Dokadnie, chcemy rozwaa nie pojedyn-cze rwnanie rekurencyjne ale klas rwna rekurencyjnych K(E) = {{Tn =fn,,,...(T1, ..., Tn1)} : , , , ... E}, tak, e {tn, n 1} K(E). Jeeliklasa K(E) jest dostatecznie szeroka, to by moe nale do niej pewne kla-sy funkcji: 1, n, n2, n3, n4, ..., 2n, 3n, ..., n!, stanowice baz interesujcego

  • 16 1. Rwnania rekurencyjne

    nas rozwizania, a wtedy konkretne rozwizanie {tn, n 1} jest liniowkombinacj tych, sprawdzonych przez nas funkcji bazowych.

    Uwaga 1.3.2.(i) Parametryzujc rwnanie rekurencyjne, ktre zawiera funkcje np. 1, n2,czasem lepiej jest dorzuci jeszcze jeden parametr z funkcj n. Na przy-kad Tn = Tn1 + 3n2 5, n 1, dobrze jest sparametryzowa doTn = Tn1 + n2 + n + , n 1. Podobnie, jeeli wystpuje wyrazn w najwyszej potdze k to niezalenie od innych wyrazw, przy para-metryzacji naley rozwaa wielomian nk + nk1 + nk2 + ... .(ii) Jeeli w rwnaniu rekurencyjnym przy Tn1 wystpuje zaleny od nwyraz an to naley rwnie rozway funkcj

    nk=1 ak. W szczeglnoci

    dla rekurencji Tn = nTn1 + 2n4 4, n 1, naley rozway funkcje:1, n, n2, n3, n4, n!, a w rekurencji Tn = 3Tn1+2n, n 1, funkcje 1, n, 3n.

    Podsumowanie Definicje rekurencyjne. Definicja rekurencyjna (indukcyjna):

    nieformalnie - taka definicja, ktra odwouje si do samej siebie - aletrzeba tu uwaa, by odwoanie byo do instancji o mniejszej komplikacji,zwykle chodzi o cig - dla ktrego przepis na element wykorzystuje jakiepoprzednie elementy,pocztkowy element (lub kilka pocztkowych) musz by zadane kon-kretnie - eby byo od czego zacz,zwykle definicja rekurencyjna odwouje si do jednego lub kilku poprzed-nich elementw, ale moe te odwoywa si do wszystkich poprzednich.

    Poprawno definicji rekurencyjnych wynika z zasady indukcji matema-tycznej

    Rozwizanie rekurencji zazwyczaj, cho nie zawsze, przyspiesza oblicze-nia programw komputerowych

    Poprzez sparametryzowanie staych wystpujcych w rwnaniu rekuren-cyjnym i sprawdzanie jakie klasy funkcji wchodz w skad sparametry-zowanego rwnania moemy rozwiza rwnanie rekurencyjne metodrepertuaru.

  • Rozdzia 2

    Sumy

    2.1. Oznaczenia i definicje . . . . . . . . . . . . . . . . . . . 182.2. Metoda czynnika sumacyjnego . . . . . . . . . . . . . . 202.3. Wasnoci sumowania . . . . . . . . . . . . . . . . . . . 222.4. Liczby harmoniczne . . . . . . . . . . . . . . . . . . . . 232.5. Sumy wielokrotne . . . . . . . . . . . . . . . . . . . . . 252.6. Rne metody obliczania sum . . . . . . . . . . . . . . 282.7. Rachunek rnicowy . . . . . . . . . . . . . . . . . . . . 32

  • 18 2. Sumy

    2.1. Oznaczenia i definicje

    Symbol reprezentujcy sumy, uywajcy greckiej duej litery

    (sigma),by wprowadzony przez matematyka Josepha Fouriera w 1820 roku.

    Definicja 2.1.1. Wyraenien

    k=m a(k),m, n Z, gdzie a(.) jest funkcjokrelon na [m,n] Z, przyjmuje warto a(m) + a(m+ 1) + . . . + a(n 1) + a(n), jeeli m n,m, n, Z i 0 w pozostaych przypadkach.

    Funkcja a(.) okrelona na podzbiorze liczb cakowitych jest nazywanazazwyczaj cigiem i stosuje si skrcony zapis ak = a(k), k Z.

    Czsto zamiast zapisun

    k=m ak, stosuje si zapis{kZ:mkn} ak, lub

    krcej

    mkn ak, wiedzc, e zbir znajdujcy si pod znakiem sumy jestzawsze podzbiorem Z. Naley uwaa jednak, bo ten ostatni zapis sumy niejest jednoznaczny, nie wiemy czy indeksem sumowania jest k, n czy m! Naprzykad:

    k

  • 2.1. Oznaczenia i definicje 19

    oznacza sum odwrotnoci wszystkich liczb pierwszych spord {1, 2, 3, 4, ..., n}.Warto zwrci uwag, e chocia odwrotno 0 nie istnieje, to poniewa[0 jest liczb pierwsz] = [1 0 n] = 0 wic umownie przyjmuje si

    [0 jest liczb pierwsz][1 0 n]10= 0 = 0.

    Rne postacie sum mog by wygodne i porczne przy wielu rnychprzeksztaceniach.

    Zwizek pomidzy sumami a rekurencjami. Kada suma jest re-kurencj. Rzeczywicie

    Sn =n

    k=0

    ak,

    {So = ao,Sn = Sn1 + an, n 1,

    Wiele rekurencji daje si zapisa w postaci sum, np. rekurencja{Ro = ,Rn = Rn1 + n+ , n 1, Rn = +

    nk=1

    (k + ).

    Czasem aby obliczy rekurencj atwiej jest sprowadzi j do sumy i obli-czy sum, a czasem, gdy trudno jest bezporednio wyliczy sum, mona jsprowadzi do rekurencji i jakim sposobem rozwiza rekurencj.

    Problem 2.1.1. Ktre rekurencje da si sprowadzi do sum? Napewno nie mona tego zrobi na przykad z tak rekurencj:{

    ao = ,an = a

    2n1 + 3n, n 1.

    Rozwamy jednak rekurencj pojawiajc si w problemie wiey w Hanoi{ho = 0,hn = 2hn1 + 1, dla n 1.

    Dzielc pierwsze rwnanie przez 20 a drugie przez 2n otrzymujemy{ho20 = 0,hn2n =

    hn12n1 +

    12n , dla n 1,

    i po podstawieniu Sn = hn2n otrzymujemy{So = 0,Sn = Sn1 + 12n , dla n 1,

  • 20 2. Sumy

    czyli

    Sn =n

    k=1

    2k = 1 2n,

    i wracajc do hn otrzymujemy

    hn = 2n 1, n 1.

    Przez co naley dzieli inne rekurencje aby otrzyma sumy?

    2.2. Metoda czynnika sumacyjnego

    Rozwamy rekurencj{aoTo = co,anTn = bnTn1 + cn, dla n 1, (2.2.1)

    gdzie bn 6= 0, n 1. Mnoc obie strony rwnania (2.2.1) przez so i odpo-wiednio sn otrzymujemy

    aosoTo = coso,ansnTn = bnsnTn1 +cnsn, dla n 1,Sn = Sn1 + cnsn, n 1.

    (2.2.2)

    eby zapisa t rekurencj w postaci sumy wspczynniki przy Tn musznam si zgadza tzn.:

    snbn = sn1an1, n 1,czyli

    sn = sn1an1bn

    = sn2an1an2bnbn1

    = soaoa1...an1b1b2...bn

    , n 1,

    i moemy przyj so = 1 otrzymujc

    sn =aoa1...an1b1b2...bn

    , n 1.

    Wtedy

    Sn = s1b1To +n

    k=1

    skck, n 0,

    czyli

    Tn =1

    snan(s1b1To +

    nk=1

    skck), n 0. (2.2.3)

  • 2.2. Metoda czynnika sumacyjnego 21

    Przykad 2.2.1. Rozwi rekurencj

    {o = 0,

    n = n+ 1 +2n

    n1k=0 k, dla n 1.

    (2.2.4)

    Cig ten okrela redni liczb porwna dla jednej z wersji sortowania n lo-sowych elementw metod szybkiego sortowania (quicksort, [10] i [21], str.95). Szerzej algorytm szybkiego sortowania omwimy w rozdziale 7.3.4.

    Zwrmy uwag, e

    nn = n(n+ 1) + 2n1

    k=0 k, dla n 0, (n 1)n1 = (n 1)n + 2n2k=0 k, dla n 1,

    nn (n 1)n1 = 2n+ 2n1, n 1.

    Czyli rekurencja (2.2.4) jest rwnowana

    {o = 0,nn = 2n+ (n+ 1)n1, dla n 1. (2.2.5)

    Stosujc metod czynnika sumacyjnego z an = n (n 1), ao = 1, bn =n+ 1 (n 1), cn = 2n (n 0), wyliczamy czynnik sumacyjny

    sn =1 1 2 (n 1)2 3 4 ...(n + 1) =

    1

    n(n+ 1)

    i stosujemy wzr (2.2.3) otrzymujc

    n =1

    snan(s1b1To +

    nk=1

    skck)

    =n(n+ 1)

    n(1

    2 2 0 +

    nk=1

    1

    n(n+ 1) 2k)

    = 2(n+ 1)n

    k=1

    1

    k + 1.

    W caym tym skrypcie liczby

    nk=1

    1

    k, n 1,

    nazywamy liczbami harmonicznymi i oznaczamy symbolem Hn. Waniejszewasnoci tych liczb podamy w podrozdziale 2.4.

  • 22 2. Sumy

    Jak wyrazi n za pomoc liczb harmonicznych? Korzystamy z przekszta-ce sum:

    nk=1

    1

    n+ 1=

    1kn

    1

    k + 1kk1=

    1k1n

    1

    k 1 + 1

    =

    2kn+1

    1

    k=

    1kn

    1

    k 1

    1+

    1

    n+ 1= Hn n

    n+ 1,

    a stdn = 2(n+ 1)Hn 2n, n 0.

    2.3. Wasnoci sumowania

    Wprowadzony w tym rozdziale operator sumowania moe uproci dugieoperacje na sumach. Dlatego scharakteryzujmy podstawowe wasnoci tegooperatora:

    kK

    cak = ckK

    ak, Prawo jednorodnoci,

    kK

    (ak + bk) =kK

    ak +kK

    bk, Prawo addytywnoci,

    kK

    ak =

    p(k)Kap(k), Prawo przemiennoci,

    kK

    ak +kK

    ak =

    kKKak +

    kKK

    ak, Prawo czenia zbiorw

    indeksw sumowanian

    k=m

    (ak+1 ak) = an+1 am, Prawo skadania (telescoping),

    gdzie p(k) oznacza dowoln permutacj liczb cakowitych (np. jak w przy-kadzie poniej p(k) = k+1, lub p(k) = k+c) o ile powysze sumy istnieji s skoczone (szeregi). Dokadnie permutacja p jest funkcj tak, e:

    p : Z Z,nK

    kZ

    ! p(k) = n.

    Prawo przemiennoci mona uoglni. Niech f : J K,J ,K Z bdziedowolnym przeksztaceniem dwch zbiorw indeksw. Wtedy

    jJaf(j) =

    kK

    akf1(k),

  • 2.4. Liczby harmoniczne 23

    gdzie f1(k) oznacza moc zbioru {j : f(j) = k}. Konieczno wystpowaniaczonw f1(k) wyjanimy na przykadzie:

    Przykad 2.3.1. Niech f(k) = k2, k Z a K = {1, 0, 1, 2, 3}. Rozwaa-my sum

    kK af(k):k{1,0,1,2,3}

    af(k) = a(1)2 + a02 + a12 + a22 + a32

    = a0 + 2a1 + a4 + a9

    =

    kf(K)akf1(k).

    Przedostatnia tosamo wynika z

    [k K] + [k K] = [k K K] + [k K K]

    i zapisu sumy w konwencji Iversona.

    2.4. Liczby harmoniczne

    Dwa nastpujce wyniki charakteryzuj liczby harmoniczne. Pierwszymwi, e cig {Hn, n 0} (z definicji sumy H0 =

    0i=1

    1i = 0) jest nieujem-

    ny, rosncy, rozbieny do nieskoczonoci a drugi, e peni w matematycedyskretnej tak rol, jak funkcja ln(.) w zwykej matematyce. Zaczniemyjednak od tabelki w ktrej wymienimy pocztkowe liczby harmoniczne:

    Tabela 2.1. Liczby harmoniczne Hn.

    n 0 1 2 3 4 5 6 7 8 9 10 11

    Hn 0 132

    116

    2512

    13760

    4920

    363140

    761280

    71292520

    73812520

    8371127720

    Twierdzenie 2.4.1. limnHn =.Dowd. Mamy

    H2n Hn = 1n+ 1

    +1

    n+ 2+ ...+

    1

    2n> n 1

    2n=

    1

    2

    i gdyby istniaa skoczona granica cigu Hn, to przechodzc w powyszejnierwnoci stronami do granicy lewa strona byaby zbiena do 0 a prawastale rwna 12 .

  • 24 2. Sumy

    Twierdzenie 2.4.2. limn(Hnln(n)) = , gdzie = 0, 57721 56649 01533 . . .jest nazywana sta Eulera.

    Dowd. Rozwamy funkcj f(x) = ln(x) x. Funkcja ta ma pochodnf (x) = 1x 1 dodatni dla 0 < x < 1 i ujemn dla x > 1. Zatem funkcjaf(x) osiga najwiksz warto dla x > 0 w punkcie x = 1 rwn f(1) = 1.Std otrzymujemy nierwno

    ln(x) x 1, x [0,).

    A zatemln(x+ 1) x, x [1,).

    Kadc x = 1k oraz x = 1k otrzymujemy1

    k ln(k + 1

    k) = ln( k

    k + 1) = ln(1 1

    k + 1) 1

    k + 1, k 1,

    a wic

    0 n, 4nxn = n!,

    4nf(x) =n

    k=0

    (1)k(n

    k

    )f(x+ n k),

    f(x+ n) =n

    k=0

    (n

    k

    )4kf(x),

    dla dowolnej staej c, dowolnych funkcji f i g oraz naturalnych n i m.

    Dwie pierwsze wasnoci wykazujemy bezporednio z definicji a trzyostatnie dowodzimy indukcyjnie.

    Szczeglnie atwo jest obliczy pochodn D dla funkcji postaci f(x) =xa. Mamy bowiem D(xa) = axa1, a 6= 0. Niestety, nie jest ten wzr praw-dziwy dla operatora4. Na przykad4(x2) = (x+1)2x2 = 2x+1, 4(x3) =(x + 1)3 x3 = 3x2 + 3x + 1. Istnieje jednak funkcja ktra daje podobnewzory dla operatora 4.Definicja 2.7.1. Zdefiniujmy funkcj m-ta dolna silnia od x przez

    xm =

    x(x 1)(x 2)...(x m+ 1), dla m > 0,1, dla m = 0,

    1(x+1)(x+2)(x+3)...(x+(m)) , dla m < 0.

  • 34 2. Sumy

    Kolejne wartoci tej funkcji w zalenoci od zwykych potg przedsta-wiamy w tabeli:

    Tabela 2.2. Tablica potg i dolnych silni.

    k0 = 1 k0 = 1k1 = k k1 = k1

    k2 = k2 k k2 = k2 + k1k3 = k3 3k2 + 2k k3 = k3 + 3k2 + k1k4 = k4 6k3 + 11k2 6k k4 = k4 + 6k3 + 7k2 + k1k5 = k5 10k4 + 35k3 50k2 + 24k k5 = k5 + 10k4 + 25k3 + 15k2 + k1

    Twierdzenie 2.7.2. Dla dowolnych liczb cakowitych m 6= 0, a, n zachodzi4(x+ a)m = m(x+ a)m1,

    4Hx1 = 1x,

    4ax = (a 1) ax,

    4(x

    n

    )=

    (x

    n 1

    ),

    4xn =n

    k=1

    (n

    k

    )xnk,

    4 sin(x) = 2 sin(12) cos(x+

    1

    2),

    4 cos(x) = 2 sin(12) sin(x+

    1

    2).

    Dowd. Dla liczby naturalnej m

    4(x+ a)m = (x+ a+ 1)(x+ a)...(x + am+ 2)(x+ a)(x+ a 1)...(x + am+ 1)

    = (x+ a)(x+ a 1)...(x + am+ 2)(x+ a+ 1 (x+ am+ 1))= m(x+ a)m1,

    natomiast

    4(x+ a)m = 1(x+ a+ 2)...(x + a+m+ 1)

    1(x+ a+ 1)...(x + a+m)

    =1

    (x+ a+ 2)...(x + a+m)

    ( 1x+ a+m+ 1

    1x+ a+ 1

    )

  • 2.7. Rachunek rnicowy 35

    =1

    (x+ a+ 2)...(x + a+m) x+ a+ 1 (x+ a+m+ 1)

    (x+ a+ 1)(x+ a+m+ 1)

    =1

    (x+ a+ 1)...(x + a+m+ 1) (m)

    = (m)(x+ a)m1.

    Druga rwno wynika natychmiast z definicji cigu liczb harmonicznych,trzecia jest oczywista, pozostae moemy dowie bezporednio z definicji.

    Warto zauway, e z powyszego twierdzenia wynika, e 42x = 2x, awic funkcja 2x odgrywa tak role w rachunku rnicowym jak funkcja ex wrachunku rniczkowym. Natomiast funkcjaHx odgrywa tak rol jak ln(x),co zauwaylimy ju w podrozdziale 2.4.

    2.7.3. Operator rnicowy 4 a operator sumy Operatorem odwrotnym do operatora D jest operator caki

    . Podobnie

    mona rozwaa operator odwrotny do 4 jako operator ,Df(x) = g(x) f(x) =

    g(x)dx + C,

    4f(x) = g(x) f(x) =

    g(x)x + C.

    Uwaga 2.7.3. (cf(x))x = c

    f(x)x,

    (f(x) + g(x))x = c

    f(x)x+

    g(x)x.

    W przypadku caek operator oznacza najmniejszy moliwy przyrost,podobnie jest i w przypadku sum, tutaj najmniejszy moliwy przyrost x =(x+ 1) x = 1.

    W analizie rozwaa si zarwno caki nieoznaczone jak i oznaczone. Po-dobnie moemy postpowa w przypadku rachunku rnicowego:

    Df(x) = g(x) f(b) f(a) = bag(x)dx,

    4f(x) = g(x) f(b) f(a) =ba

    f(x) =

    ax

  • 36 2. Sumy

    Twierdzenie 2.7.4. Dla dowolnej liczby cakowitej m oraz naturalnych ni rzeczywistego a 6= 1 mamy

    n1k=0

    km =

    1m+1(n

    m+1 0m+1) dla m 6= 1,Hn dla m = 1,

    n1k=0

    ak =an 1a 1 .

    Uwaga 2.7.5. Twierdzenie 2.7.2 pozwala nam uzyska szereg bardzo inte-resujcych zalenoci, na przykad:

    2n1k=n

    (k

    n 1

    )=

    (2n

    n

    ) 1,

    n1k=0

    cos(k +1

    2) =

    sin(n)

    2 sin(12 ),

    n1k=0

    sin(k +1

    2) =

    cos(n)

    2 sin(12).

    2.7.4. Obliczanie sum metodami rnicowymi

    Wrmy do naszego przykadu Sn =n

    k=1 k2 =

    nk=0 k

    2. Z Tablicy 2.2i Twierdzenia 2.7.4 otrzymujemy

    Sn1 =

    0k

  • 2.7. Rachunek rnicowy 37

    uamki i postpuj tak dalej. Wszystkie potrzebne przeksztacenia podajemyponiej

    k3 1(k + 1)(k + 2)(k + 3)

    =k3 + 3k2 3k2 1

    (k + 1)(k + 2)(k + 3)

    =k2(k + 3)

    (k + 1)(k + 2)(k + 3) 3k

    2 + 1

    (k + 1)(k + 2)(k + 3)

    =k2

    (k + 1)(k + 2) 3k

    2 + 9k 9k + 1(k + 1)(k + 2)(k + 3)

    =k(k + 2)

    (k + 1)(k + 2) 2k

    (k + 1)(k + 2)

    3k(k + 3)(k + 1)(k + 2)(k + 3)

    +9k 1

    (k + 1)(k + 2)(k + 3)

    =k

    k + 1 2k + 4 4

    (k + 1)(k + 2)

    3k + 6 6(k + 1)(k + 2)

    +9k + 27 28

    (k + 1)(k + 2)(k + 3)

    =k + 1 1k + 1

    2(k + 2)(k + 1)(k + 2)

    4(k + 1)(k + 2)

    3(k + 2)(k + 1)(k + 2)

    +6

    (k + 1)(k + 2)+

    9k + 27 27 1(k + 1)(k + 2)(k + 3)

    = 1 k1 2k1 + 4k2 3k1 + 6k2 + 9k2 28k3= k0 6k1 + 19k2 28k3.

    Tak wic otrzymalimy sumy skadnikw, ktre potrafimy obliczy metodamirnicowymi (z Twierdzenia 2.7.4).

    n1k=0

    (k3 3k + 2k + k3 1

    (k + 1)(k + 2)(k + 3))

    =n1k=0

    (2k + k3 + 3k2 + 2k1 + k0 6k1 + 19k2 28k3

    )

    = 2k |n0 +k4

    4|n0 +

    3k3

    3|n0 +

    2k2

    2|n0 +

    k1

    1|n0 6Hk |n0 +

    19k1

    1 |n0

    28k2

    2 |n0

    = 2n 1 + n4

    4+ 3

    n3

    3+ 2

    n2

    2+n1

    1 6Hn + 19(n

    1

    1 1) 28(n2

    2 1

    (2)2! )

    = 2n 27 + n4 6n3 + 11n2 6n

    4+ n3 3n2 + 2n + n2 n+ n

  • 38 2. Sumy

    6Hn 19n+ 1

    +14

    (n+ 1)(n + 2)

    = 2n +n4

    4 n

    3

    2+

    3n2

    4+n

    2 27 6Hn 19

    n+ 1+

    14

    (n+ 1)(n + 2).

    Uwaga 2.7.6. Jeeli mamy obliczy iloraz rnicowy uamka, w ktrymnie ma w mianowniku cigu arytmetycznego (z r = 1) liczb, np. 2k

    23(k+2)(k+5) ,

    to wtedy uzupeniemy mianownik i licznik domnaajc przez odpowiedniewyrazy (2k

    23)(k+1)(k+3)(k+4)(k+1)(k+2)(k+3)(k+4)(k+5) .

    Uwaga 2.7.7. Reguy postpowania przy obliczaniu sum metodami rni-cowymi to: Wyra wszystkie skadniki sumy za pomoc dolnych silni km (Tabela2.2), potg ak lub symboli Newtona

    (kn

    )lub, jak zobaczymy w nastpnym

    podrozdziale iloczynw opisanych tutaj typw. Zastosuj Twierdzenie 2.7.4, Twierdzenie 2.7.3, dla (xn) lub podany wnastpnym podrozdziale wzr na rnicowanie przez czci dla iloczynwi Twierdze 2.7.3-2.7.4. Znowu stosujc Tabel 2.2 lub wyliczajc bezporednio zamie dolnsilni na zwyke potgi i uporzdkuj wynik.

    2.7.5. Wzr na rnic iloczynu i sumowanie przez czci

    Wprowadmy najpierw operator przesunicia E poprzez Ef(x) = f(x+1). Oczywicie std Enf(x) = f(x+ n), n 1. W rachunku rniczkowymznane s wzory na pochodn iloczynu i ilorazu funkcji:

    D(f g)(x) = (Df)(x)g(x) + f(x)(Dg)(x), (f g) = f g + fg,D(

    f

    g)(x) =

    (Df)(x)g(x) f(x)(Dg)(x)g2(x)

    , (f

    g) =

    f g fgg2

    .

    Czy podobne wzory mona rwnie poda w rachunku rnicowym? Odpo-wied jest pozytywna, jednak pojawiaj si pewne drobne rnice.

    Twierdzenie 2.7.8. Dla dowolnych cakowitoliczbowych funkcji

    4(f g)(x) = f(x)(4g)(x) + (4f)(x)g(x + 1) = (f(4g) + (4f)(Eg))(x),4(f

    g)(x) =

    (4f)(x)g(x) f(x)(4g)(x)g(x)g(x + 1)

    =(4f)g f(4g)

    gEg(x).

    Dowd. Z definicji operatora rnicowego i E otrzymujemy

    4(f g)(x) = f(x+ 1)g(x + 1) f(x)g(x)

  • 2.7. Rachunek rnicowy 39

    = f(x+ 1)g(x + 1) f(x)g(x+ 1) + f(x)g(x + 1) f(x)g(x)= g(x+ 1)(4f)(x) + f(x)(4g)(x)= (f(4g) + (4f)(Eg))(x),

    oraz

    4(fg)(x) =

    f(x+ 1)

    g(x+ 1) f(x)g(x)

    =f(x+ 1)g(x) f(x)g(x+ 1)

    g(x)g(x + 1)

    =(f(x+ 1) f(x))g(x) f(x)(g(x+ 1) g(x))

    g(x)g(x + 1)

    =(4f)g f(4g)

    gEg(x).

    Twierdzenia Leibnitza pomagajce obliczy n-t pochodn iloczynu funk-cji:

    (fg)(n) =n

    k=1

    (n

    k

    )f (k)g(nk),

    gdzie f (n) oznacza n-t pochodn funkcji f . Wynik analogiczny w rachunkurnicowym do tego twierdzenia mona uzyska indukcyjnie z Twierdzenia2.7.8.

    Twierdzenie 2.7.9. Zachodzi

    4n(f g)(x) =n

    k=0

    (n

    k

    )(4kf)(x)(4nkg)(x+k) =

    nk=0

    (n

    k

    )((4kf)(4nk(Ekg)))(x).

    Twierdzenie 2.7.8 pozwala uzyska ciekawy wzr na rnicowanie przezczci, poprzez analogi do cakowania przez czci

    f(x)g(x)dx = f(x)g(x)f (x)g(x)dx.

    Twierdzenie 2.7.10.

    f(x) 4g(x)x = f(x) g(x)

    (4f)(x)g(x + 1)x.

    Pokaemy jak ten wzr mona wykorzysta do obliczenia sumy

    0k

  • 40 2. Sumy

    0k

  • Rozdzia 3

    Funkcje cakowitoliczbowe

    3.1. Podoga i sufit . . . . . . . . . . . . . . . . . . . . . . . 423.2. Widmo liczby . . . . . . . . . . . . . . . . . . . . . . . 463.3. Rekurencje z funkcjami podoga i sufit . . . . . . . . . 473.4. Dziaanie dwuargumentowe mod . . . . . . . . . . . . . 523.5. Generatory liczb pseudolosowych . . . . . . . . . . . . . 543.6. Zapisy liczb naturalnych w rnych podstawach liczenia 56

  • 42 3. Funkcje cakowitoliczbowe

    Funkcje cakowitoliczbowe s to funkcj, ktrych zbiorem wartoci jestzbir liczb cakowitych lub jego podzbir. W tym rozdziale rozwaamyfunkcje okrelone na zbiorze liczb rzeczywistych. W bibliotece JAVA - ja-va.lang.Math wystpuj funkcje: ceil(), f loor(), rint(), round() oraz opera-tory % i xmod y, podobnie w jzyku PYTHON w bibliotece matematycznejwystpuj trzy takie funkcje: floor(, ) ceil() i divmod() oraz operatory % i\\. W tym rozdziale bdziemy zajmowa si takimi wanie funkcjami.

    3.1. Podoga i sufit

    Definicja 3.1.1. Funkcje podoga b.c oraz sufit d.e definiujemy wzorami:

    bxc = max{c Z : c x},dxe = min{c Z : c x}.

    Rysunek 3.1. Funkcje podoga i sufit.

    -

    6

    -4

    -3

    -2

    -1

    1

    2

    3

    4

    -4 -3 -2 -1 0 1 2 3 4-

    6

    -4

    -3

    -2

    -1

    1

    2

    3

    4

    -4 -3 -2 -1 0 1 2 3 4

    b

    b

    b

    b

    b

    b

    b

    b

    b

    y = bxcb

    b

    b

    b

    b

    b

    b

    b

    b

    y = dxe

    W jzykach programowania funkcji podoga najczciej odpowiada funk-cja floor() natomiast sufit to ceil(). W VISUAL BASICu funkcja INT ()dziaa jak podoga ale jest te inna funkcja, FIX(), okrelona nastpujco

    FIX(x) =

    {bxc, dla x 0,dxe, dla x < 0.

    Zwrmy uwag na interesujcy zwizek funkcji podoga i sufit z oma-wianym w poprzednim rozdziale symbolem Iversona i zbiorem liczb cako-witych

    dxebxc = [x nie jest liczb cakowit] ={

    0, x jest liczb cakowit,1, x nie jest liczb cakowit.

  • 3.1. Podoga i sufit 43

    Ponadto bezporednio z definicji zachodz nastpujce nierwnoci:

    x 1 < bxc x dxe < x+ 1,bxc = dxe, dxe = bxc.

    Z tych prostych wasnoci bezporednio mona otrzyma:

    Uwaga 3.1.1. Zachodzi

    bxc = n n x < n+ 1,bxc = n x 1 < n x,dxe = n n 1 < x n,dxe = n x n < x+ 1,

    a ponadto

    x < n bxc < n,n < x n < dxe,x n dxe n,n x n bxc.

    Problem 3.1.1. Czy

    bx+ yc = bxc+ byc, dx+ ye = dxe+ dye,bx yc = bxc byc, dx ye = dxe dye?

    atwo sprawdzi, e dla naturalnych liczb n: bxnc = bxcn i dxne =dxe n, ale w oglnoci nie jest prawdziwe bnxc = nbxc, czy dnxe = ndxe,(po n = 2, x = 12).

    Zdefiniujmy {x} = x bxc (jest to cz uamkowa x). Przebieg tejfunkcji ilustruje Rys. 3.2

    Rysunek 3.2. Funkcja {x}.

    -

    6

    -4

    -3

    -2

    -1

    1

    2

    3

    4

    -4 -3 -2 -1 0 1 2 3 4b b b b b b b b b

    y = {x}

  • 44 3. Funkcje cakowitoliczbowe

    Z drugiej strony mamy x = {x}+ bxc a stdbx+ yc = bbxc+ byc+ {x}+ {y}c = bxc+ byc+ b{x}+ {y}c,

    a poniewa 0 {x}+ {y} < 2, wic

    bx+ yc ={bxc+ byc, gdy 0 {x}+ {y} < 1,bxc+ byc+ 1, gdy 1 {x}+ {y} < 2.

    Twierdzenie 3.1.2. Dla dowolnej nieujemnej rzeczywistej liczby x zacho-dzi

    bxc

    =

    x,

    dxe

    =

    x.

    Udowodnimy twierdzenie oglniejsze:

    Twierdzenie 3.1.3. Niech f bdzie rosnc cig funkcj o tej wasnoci,e

    Jeli f(x) jest liczb cakowit to x jest liczb cakowit

    Wtedy f(bxc)

    =

    f(x)

    ,

    f(dxe)

    =f(x)

    .

    Dowd. Udowodnimy tylko pierwsz rwno (druga jest analogiczna).Jeeli bxc = x to teza jest oczywista, zamy wic bxc < x. Z tego, efunkcja f jest rosnca wynika, e f(bxc) < f(x) a z wasnoci funkcjipodoga

    f(bxc)

    f(x)

    . Zamy teraz, e

    f(bxc)

    0

    [bkc n]

    =k>0

    [bkc < n+ 1]

    =k>0

    [k < n]

    =k

    [0 < k < (n+ 1)/]

    = d(n+ 1)/e 1.Twierdzenie 3.2.2. Niech p i q bd dwoma liczbami niewymiernymi ta-kimi, e 1p +

    1q = 1. Wtedy Spec(p) Spec(q) = N , Spec(p) Spec(q) = .

    Dowd. Napierw wykaemy e dla kadej liczby naturalnej n zachodziN(p, n) + N(q, n) = n (zwrmy uwag, e rwno ta oznacza i liczba nwystpuje dokadnie raz w jednym z widm). Mamy

    N(p, n) +N(q, n) = dn+ 1p

    e 1 + dn+ 1q

    e 1 = n

    bn+ 1p

    c+ bn+ 1q

    c = n,

    n+ 1p

    {n+ 1p

    }+ n+ 1q

    {n+ 1q

    } = n,

    (n+ 1)(1p+

    1

    q) {n + 1

    p} {n+ 1

    q} = n,

    {n+ 1p

    }+ {n+ 1q

    } = 1,

    co jest prawdziwe bo n+1p +n+1q = n+ 1.

    W szczeglnoci za liczby p i q mona wybra2 i 2 +

    2 (Sprawd).

    3.3. Rekurencje z funkcjami podoga i sufit

    Przykad 3.3.1. Niech a[1 : n] bdzie tablic liczb, ktre chcemy posorto-wa a b[1 : n] pomocnicz tablic. Rozwamy nastpujcy algorytm sortowa-nia:

  • 48 3. Funkcje cakowitoliczbowe

    Algorytm 3.1. Sortowanie przez podzia i zczanie

    procedure s o r t (p , k : i n t e g e r ) ;p1 , i , j , s : i n t e g e r ;i f k>p then

    {p1:=b ( k+p) /2 c ;s o r t (p , p1 ) ;s o r t ( p1+1,k ) ;i :=p ; j :=p1+1; s :=p ;whi le ( i

  • 3.3. Rekurencje z funkcjami podoga i sufit 49

    Jak rozwiza t rekurencj? Udowodnimy najpierw pomocnicz tosa-mo:

    dlog2(2j)e = dlog2(j)e + 1, j 1,dlog2(2j 1)e = dlog2(j)e + [j > 1], j 1.

    Pierwsza rwno wynika z faktu, e dlog2(2j)e = dlog2(j) + 1e, natomiastdla drugiej mamy

    dlog2(2j 1)e = k k 1 < log2(2j 1) k 2k1 < 2j 1 2k

    2k2 + 12< j 2k1 + 1

    2

    2k2 < j 2k+[j>1],

    bowiem jedynie dla k = 1 w przedziaach typu (2k1, 2k1 + 12 ] znajduje siliczba cakowita.

    Nastpnie rozwamy sumn

    k=1dlog2(k)e. Poniewan

    k=1

    dlog2(k)e =bn2c

    k=1

    dlog2(2k)e +dn2e

    k=1

    dlog2(2k 1)e

    =

    bn2c

    k=1

    dlog2(k)e + bn

    2c+

    dn2e

    k=1

    dlog2(k)e+ dn

    2e 1

    =

    bn2c

    k=1

    dlog2(k)e +dn2e

    k=1

    dlog2(k)e+ n 1,

    wic

    T (n) =n

    k=1

    dlog2(k)e.

    Ta sama suma pojawia si w innym algorytmie sortowania - algorytmiewstawiania powkowego (algorytm 7.2). Algorytm ten zostanie omwionyszczegowo w podrozdziale 7.3.1.

    Przykad 3.3.2. Rekurencja Flawiusza. Rozwamy teraz ponownie reku-rencj Flawiusza. Rekurencj Flawiusza J2() moemy zapisa zwartym wzo-rem jako: {

    J2(1) = 1,J2(n) = 2J2(bn2 c) (1)n, dla n 2,

  • 50 3. Funkcje cakowitoliczbowe

    natomiast oryginaln rekurencj Flawiusza mona opisa{J3(1) = 1,J3(n) = d32J3(b2n3 c) + ane mod n + 1, dla n 2,

    gdzie

    an =

    2 jeli n mod 3 = 0,1 jeli n mod 3 = 1,12 jeli n mod 3 = 2,

    a operator dwuargumentowy n mod m oznacza reszt z dzielenia n przezm (wicej o tym operatorze w nastpnym podrozdziale). Nie jest to rw-nanie, ktre monaby rozwiza jakimi znanymi metodami, ale zupenieinne podejcie do problemu Flawiusza moe by efektywniejsze. Zamy,e po eliminacjach nadamy nowe (dalsze) numery pozostaym osobom. Naprzykad, dla n = 12 osb mamy

    1 2 3 4 5 6 7 8 9 10 11 1213 14 15 16 17 18 19 2021 22 23 24 25 26

    27 28 29 3031 3233 34

    3536

    Zauwamy, e k-ta w kolejnoci zabita osoba teraz w chwili mierci manumer 3k a poszukiwana J3(n)-ta osoba ma numer 3n. Jak atwo widaosoba o numerze N = n + 2k + 1 lub N = n+ 2k + 2 miaa numer 3k + 1lub 3k+2, odpowiednio, a std stary numer jest rwny bNn12 c+N nco prowadzi do nastpujcego algorytmu obliczania J3(n):

    Algorytm 3.2. Obliczanie J3(n)N:=3n ;wh i l e N>n do

    N:= bNn12

    c+Nn ;J3 (n) :=N;

    Otrzymalimy wic algorytm obliczenia J3(n) ale dalej nie mamy tutajani zwartego wzoru, ani nawet rekurencji. Jeli jednak zrobimy podstawienieD = 3n+ 1N to

    D := 3n+ 1((3n + 1D) n 1

    2

    + (3n+ 1D) n

    )

  • 3.3. Rekurencje z funkcjami podoga i sufit 51

    = n+D 2nD

    2

    = d

    D2

    = d+

    D2

    =

    32D,

    a std otrzymujemy algorytm

    Algorytm 3.3. Obliczanie J3(n) - drugi sposbD:=1;wh i l e D (q 1)n}.W poniszej tabeli podamy liczby D(q)k , 1 k 30, q = 3, 4, 5 :

    Tabela 3.2. Liczby D(q)k , q = 3, 4, 5.

    k D(3)k D

    (4)k D

    (5)k

    1 1 1 12 2 2 23 3 3 34 5 4 45 8 6 56 12 8 77 18 11 98 27 15 129 41 20 1510 62 27 1911 93 36 2412 140 48 3013 210 64 3814 315 86 4815 473 115 60

    k D(3)k D

    (4)k D

    (5)k

    16 710 154 7517 1065 206 9418 1598 275 11819 2397 367 14820 3596 490 18521 5394 654 23222 8091 872 29023 12137 1163 36324 18206 1551 45425 27309 2068 56826 40964 2758 71027 61446 3678 88828 92169 4904 111029 138254 6539 138830 207381 8719 1735

  • 52 3. Funkcje cakowitoliczbowe

    Obliczmy teraz J3(41). Z tabelki widzimy, e D(3)11 > 2 41 = 82 a wic

    k = 11 a J3(41) = 3 41 + 1 93 = 31. Naley wic stan na 31 pozycji.Widzimy wic jak dobrym matematykiem by Flawiusz (matematyka czasemratuje ludziom ycie).

    Sprawdmy jeszcze przedstawion teori dla znanego przypadku q = 2.Wtedy D(2)n = 2n i k = inf{j 1 : D(2)j > n} = m(n) + 1 = blog2(n)c+ 1 awic

    J2(n) = n+ 1D(2)k = 2n+ 1 2m+1 = 2(n 2m) + 1 = 2l + 1,

    co jest zgodne z Twierdzeniem 1.2.1.

    3.4. Dziaanie dwuargumentowe mod

    Wpoprzednim podrozdziale pojawi si operator dwuargumentowymod.Zajmiemy si tutaj bliej wasnociami tego operatora. Dla dowolnych liczbnaturalnych n i m (n > m), liczba m mieci si e b nmc razy w liczbie n,natomiast n mod m jest reszt z dzielenia n przez m, a wic kad liczbnaturaln n moemy przedstawi w postaci

    n = b nmcm+ n mod m. (3.4.1)

    Chcemy rozszerzy t wasno na wszystkie liczby rzeczywiste, kadc dlax, y

  • 3.4. Dziaanie dwuargumentowe mod 53

    x to wykonamy bxy c pene obroty okrgu a skoczymy w miejscu odlegymod pocztku o x mod y.

    Rysunek 3.3. Ilustracja x mod y oraz bxyc.

    6$%&$pp p p p

    b xyc - razy

    cae koa x mod yx2pi

    Twierdzenie 3.4.1. Dla dowolnych x, y, c mamy:

    (i) 0 x mod y < y, dla y > 0,(ii) 0 x mod y > y, dla y < 0,(iii) c(x mod y) = (cx) mod (cy).

    Dowd (iii)

    c(x mod y) = c(x ybxyc) = cx cybcx

    cyc = (cx) mod (cy).

    Problem 3.4.1. Podziel n osb na m moliwie rwnolicznych grup. Naprzykad niech n = 10 dzielimy na m = 4 grupy. Otrzymujemy dwie grupypo b104 c = 2 elementw oraz dwie grupy po d104 e = 3 elementw, czyli

    10 = b104c+ b10

    4c+ d10

    4e+ d10

    4e.

    Oglnie

    n = b nmc+ b n

    mc+ ...+ b n

    mc

    n mod m

    + d nme+ d n

    me+ ...+ d n

    me

    mn mod m

    ,

    czyli

    n = b nmc+ bn+ 1

    mc+ ...+ bn+m 1

    mc,

    lubn = d n

    me+ dn 1

    me+ ...+ dnm+ 1

    me.

    Niech teraz n = dmxe. Wtedy z Wniosku 3.1.1

    bmxc = bx+ 1mc+ bx+ 2

    mc+ ...+ bx+ m 1

    mc. (3.4.2)

    Analogicznie moemy otrzyma

    dmxe = dx 1me+ dx 2

    me+ ...+ dx m 1

    me. (3.4.3)

  • 54 3. Funkcje cakowitoliczbowe

    3.5. Generatory liczb pseudolosowych

    Wanym problemem, w zastosowaniach komputerowych, jest wygenero-wanie cigu losowego. Komputer jest urzdzeniem w 100% deterministycz-nym, a podczenie jakiej przystawki, gdzie byby generowany proces lo-sowy, chocia moliwe (oparte na szumie termicznym lub promieniowaniukosmicznym) jest bardzo drogie. Zastosowanie w komputerze losowych liczbjest ogromne: rne symulacje, obliczanie caek czy te rozwizywanie rw-na, ktrych w inny sposb nie mona obliczy, gry, projektowanie itp. Przybraku rzeczywistej losowej przystawki jedyn metod generowania ciguliczb w komputerze jest cig postaci Xn = f(Xn1, ...,Xnk), n k + 1,przy pewnych warunkach pocztkowych. Niestety tak wygenerowany cigjest zawsze (!) okresowy, a zgodnie z nasz intuicj, losowy cig powinienby nieokresowy. Podobnie, ze wzgldu na skoczono pamici komputeracig losowy w komputerze skada si wy acznie z liczb wymiernych, aprawdopodobiestwo wylosowania liczby wymiernej z przedziau [0, 1] wy-nosi 0(liczby niewymiernej wynosi 1). Dlatego cigi losowe tworzone wkomputerze okrelamy jako psudolosowe a nie losowe (z wyjtkiem wspo-mnianych na pocztku losowych przystawek). O jakoci cigu pseudoloso-wego wiadczy wic dugo okresu, szybko oblicze i spenianie pewnejgrupy testw statystycznych. Chyba jednym z czciej uywanych takichcigw jest generator liniowy kongruencyjny lub generator liniowy Lehmera(LCG):

    LCG(M,a, b, ) :

    {Xo = ,Xn = (aXn1 + b) mod M, n > 1,

    (3.5.4)

    gdzie moliwie dobrym wyborem jestM = 2m, c = 2k+1, a = 4l+1, k, l,m N , wtedy cig ten ma okres 2m, najwikszy jaki moe przyjmowa. WANSI-C jako funkcja rand() stosowany jest LCG(231, 1103515245, 12345,12345) z, jak wida, do prostymi wartociami b i . Inny generator li-niowy kongruencyjny LCG(231 1, 6300360016, 0, 0) jest wykorzystywanyw FORTRANIE w funkcji RAN() a jeszcze inne wykorzystywno w CUPL,BCPL, Turbo C++, Turbo Pascalu i Mapple. Generatory LCG, uywanew symulacjach i metodach Monte Carlo (np., numeryczne obliczanie caek),s jednak cakowicie nieprzydatne w kryptografii, kolejne wartoci przyro-stw generatora ukadaj si bowiem na liniach prostych (y = ax + b) otym samym wspczynniku nachylenia. Po odgadniciu pierwszej wartocigeneretora pozostae wartoci jest wic ju zbyt atwo zama (wzr (3.5.4)

  • 3.5. Generatory liczb pseudolosowych 55

    jest za prosty). Na rysunkach 3.4 i 3.5 przedstawilimy wykres generatoraLCG(32, 5, 17, 0) i przyrosty tego generatora.

    Rysunek 3.4. Generator LCG(32, 5, 17, 0). Wykres zalenoci Xn od n.

    6

    -2

    4

    6

    8

    10

    12

    14

    16

    18

    20

    22

    24

    26

    28

    30

    32

    2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32

    Xn

    n

    q

    qq

    q qqq q

    q

    qq

    q qqq q

    q

    qq

    q q

    q

    q q

    q

    q

    q

    q qqq q

    q

    Rysunek 3.5. Generator LCG(32, 5, 17, 0). Wykres zalenoci Xn od Xn1.

    6

    -2

    4

    6

    8

    10

    12

    14

    16

    18

    20

    22

    24

    26

    28

    30

    32

    2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32

    Xn

    Xn1

    qq

    qqqqq

    q

    qq

    qqqqq

    q

    qq

    q q

    q

    q q

    q

    q

    q

    q qqqq

    q

    Inne, czsto uywane generatory to generator multyplikatywny (we wzo-rze (3.5.4) kadziemy b = 0), generatory odwrotne, generatory oparte na re-jestrach przesuwnych czy te generatory Fibonacciego. Wszystkie one opartes na operatorze x mod y.

  • 56 3. Funkcje cakowitoliczbowe

    Przeanalizujmy jeszcze wzr (3.5.4). Czy mona poda nierekurencyjnywzr na Xn? Podstawmy = /M, a = a, b = b/M, oraz Yn = XnM , n 0.Wtedy (z Twierdzenia 3.4.1. (iii)) (3.5.4) jest rwnowane

    LCG(1, a, b, ) :

    {Yo =

    ,Yn = (a

    Yn1 + b) mod 1 = {aYn1 + b}, n > 1,

    gdzie Xn = YnM,n 0. Poniewa a jest liczb cakowit, wicYn = (a

    (aYn2 + b mod 1) + b) mod 1= (a(aYn2 + b) abaYn2 + bc+ b) mod 1= (a2Yn2 + ab + b) mod 1.

    Rozumujc analogicznie dalej, widzimy, e jeli Zn jest rozwizaniem reku-rencji {

    Zo = ,

    Zn = aZn1 + b, n > 1,

    (3.5.5)

    toYn = Zn mod 1 = {Zn}, n 0.

    Rekurencj (3.5.5) moemy rozwiza metod czynnika sumacyjnego, ka-dc we wzorze (2.2.1) a0 = 1, c0 = , an = 1, bn = a, n 1, cn = b mamysn = 1/a

    ,n 1, ponadto z (2.2.3) otrzymujemy

    Zn =11an

    (1

    aa +

    nk=1

    1

    akb)

    = an +an 1a 1 b

    =an + a

    n1a1 b

    M,

    a zatem z Twierdzenia 3.4.1 (iii)

    LCG(M,a, b, ) :

    {Xo = ,

    Xn = (an+ a

    n1a1 b) mod M. n > 1.

    3.6. Zapisy liczb naturalnych w rnych podstawach liczenia

    Nasz ukad liczenia ma podstaw 10 ale w komputerze informacja jestzapisywana w systemie o podstawie 2 (binarnie) lub o podstawie 16 (heksa-decymalnie). Sposb zapisu liczb wyznacza te w jaki sposb wykonujemy

  • 3.6. Zapisy liczb naturalnych w rnych podstawach liczenia 57

    pisemnie obliczenia, inaczej bowiem wtedy wygldaj tabliczki mnoeniai dodawania. O binarnym ukadzie liczenia pisalimy w Uwadze 1.2.4, tu-taj omwimy problem zamiany zapisw liczb z ukadw liczenia o rnychpodstawach.

    Dawniej, w niektrych krajach, uywano innych systemw liczenia nidziesitny, na przykad Babiloczycy uywali systemu 60-tnego, std dodzi godzina ma 60 minut, minuta 60 sekund itp. Rwnie pozostaociinnych ni 10-tne sposoby liczenia s takie pojcia jak kopa czy tuzin.Liczby w ukadzie o podstawie p = 2, 3, . . . wykorzystuj p cyfr, std liczbw ukadzie dwjkowym zapisujemy korzystajc z cyfr {0, 1}, sidemkowym{0, 1, 2, 3, 4, 5, 6} a szesnastkowym {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A,B,C,D,E, F},gdzie A = 10, B = 11, C = 12,D = 13, E = 14, F = 15.

    Definicja 3.6.1. Mwimy, e liczba rzeczywista x ma zapis w ukadzie opodstawie p rwny (cncn1...c1c0, c1c2...ck)p jeeli

    x = sign(x)(cncn1...c1c0, c1c2...ck)p = sign(x)n

    i=kcip

    i. (3.6.6)

    przy czym dopuszczamy k =. Podobnie jak w dziesitnym ukadzie liczenia w dowolnym ukadzie li-

    czenia liczby wymierne maj zawsze skoczony okres a liczby niewymiernenie. Na przykad

    2

    3= (0.(6))10 = (0.(10))2 = (0, (31))5 = (0.(4))7 = (0.(52))8 = (0.(A))16

    3725, 125 = (3725, 125)10 = (111010001101, 001)2= (104400, (03))5 = (13601, (06))7 = (7215, 1)8 = (21A5, 16)16

    203, 22 = (203, 22)10 = (11001011, 0(01110000101000111101))2 = (1303, 10(2))5

    = (410, (1353))7 = (313, 1(60507534121727024365))8 = (CB, 3852)16

    W jaki sposb zamienia liczby zapisane w jednej podstawie na liczbyzapisane w innej podstawie. Zajmijmy si najpierw liczbami naturalnymi.Jeli x =

    nj=0 cjp

    j , oraz 0 cj < p, j 0 to bxp c =n

    j=1 cjpj1 oraz

    x mod p = c0. Std, aby zapisa liczb 203 w ukadzie dwjkowym obli-czamy cz cakowit ilorazu b2032 c = 101 oraz 203 mod 2 = 1 = c0, dalejznowu b1012 c = 50 i 101 mod 2 = 1 = c1. Moemy ten proces opisa wtabelce

    203 101 50 25 12 6 3 11 1 0 1 0 0 1 1

    a std 20310 = (11001011)2 , (zauwa, e cyfry piszemy w odwrotnejkolejnoci).

  • 58 3. Funkcje cakowitoliczbowe

    Niech teraz y bdzie uamkiem o podstawie p, to znaczy y =1

    i=k cipi

    oraz 0 ci < p, i 1, wtedy bypc = c1 a yp bypc = 1i=k+1 cipi+1.W przypadku y = 0, 22 mamy 2y = 0, 44 i c1 = 0, dalej 2 0, 44 = 0, 88i c2 = 0, 2 0, 88 = 1, 76 i c3 = 1 teraz 2 0, 76 = 1, 52 i c4 = 1 itd.Moemy ten proces przedstawi w formie tabelki

    0,22 0,44 0,88 0,76 0,52 0,04 0,08 0,16 0,32 0,64 0,28 0,560 0 1 1 1 0 0 0 0 1 0 1

    0,12 0,24 0,48 0,96 0,92 0,84 0,68 0,36 0,72 0,44 . . .

    0 0 0 1 1 1 1 0 1 0 . . .

    a std 0, 2210 = (0, 0(01110000101000111101))2 . Znak liczby przepisujemybez zmian.

    Rozwaania te prowadz do nastpujcego algorytmuAlgorytm konstrukcji rozwinicia liczby n o podstawie bDane: Liczba x.Wynik: Napis (cn, cn1, cn2, ..., c0, c1c2c3...ck)p.Uwaga: Naley pamita, e gdy liczba x ma rozwinicie okresowe lub

    nieskoczone czci uamkowej to obliczanie tej czci nam si zaptli, do-brze by byo dorzuci licznik ograniczajcy ilo tych cykli!

    Uwaga: W rzeczywistych obliczeniach pojawiaj si nam do szyb-ko bdy zaokrgle, (bdy wynikajce z utraty cyfr znaczcych uamkwreprezentujcych liczby zmiennopozycyjne, powodowane koniecznoci ob-cicia wynikw oblicze w zwizku ze skoczon reprezentacj komputerowliczb), std dobrze by byo wykona obliczenia moliwie duej precyzji!

    Algorytm 3.4. Konstrukcja rozwinicia liczby n o podstawie bi f x9 then

    c := Chr(q+22) & c {Dodajemy liter A=10, B=11 ...}

    e l s ec := Str ( q ) & c ; {Dodajemy cyfr}

    in tx := b intxp c ;

  • 3.6. Zapisy liczb naturalnych w rnych podstawach liczenia 59

    }{Cz uamkowa}c=c & " ," ;whi le decx 6=0

    {q=bpdecx ci f q>9 then

    c := c & Chr(q+22) {Dodajemy liter A=10, B=11... }e l s e

    c := c & Str ( q ) ; {Dodajemy cyfr}decx := pdecxbpdecxc ;

    }{Dodaj znak }c := znakx & c ;{Wynikiem jest acuch c}

    Przy obliczaniu liczby (w ukadzie dziesitnym) na podstawie jej roz-winicia korzystamy ze wzoru (3.6.6). Dobrze jest wtedy wykorzysta takzwany schemat Hornera, stosowany do oblicze wartoci wielomianu w ja-kim punkcie. Zwrmy, uwag, e dla zadanej tablicy c[i], i = k, . . . n,algorytm

    s :=c [ 0 ] ; p1:=p ;f o r i :=1 to n

    s := s+c [ i ] p1 ;p1:=p1p ;

    p1:=1/p ;f o r i :=1 to k

    s := s+c[ i ] p1 ;p1:=p1/p ;

    wymaga 2 (n + k) + 1 operacji mnoenia/dzielenia i n + k dodawania,podczas gdy

    s :=c [ n ] ;f o r i :=n1 to 1 step 1

    s := s p+c [ i ] ;s1 :=c[k ] ;f o r i :=k+1 to 1

    s1 := s1 /p+c [ i ] ;s := s p+s1/p+c [ 0 ] ;

  • 60 3. Funkcje cakowitoliczbowe

    tylko n+ k 2 mnoe/dziele i tyle samo dodawania. Tak wic przy obli-czaniu korzystamy ze wzoru

    ni=k

    cipi =

    (. . .((ck/p + ck+1)/p + ck+2

    )/p+ . . . c1

    )/p+ c0

    +

    (. . .((cn p+ cn1) p+ cn2

    ) p+ . . .+ c1

    ) p.

    Podsumowanie Najczciej uywane funkcje cakowitoliczbowe to podoga i su-

    fit. Maj one szereg interesujcych wasnoci i s tak wane, e wik-szo jzykw programowania implementuje te funkcje.

    W oparciu o funkcj podoga mona skonstrowa nieskoczon repre-zentacj liczb rzeczywistych tak, e liczba ma reprezentacj Spec() ={bc, b2c, b3c, b4c, ...}. Wwielu zastosowaniach reprezentacja ta mo-e by interesujc alternatyw innych reprezentacji.

    Funkcje podoga i sufit czsto wystpuje w rekurencjach dotycz-cych analizy funkcjonowania algorytmw czy te w dokadniejszej ana-lizie problemu Flawiusza.

    Inna funkcja cakowitoliczbowa - operator dwuargumentowy mod moe-my rozszerzy do funkcji rzeczywistej. Operator ten jak i omawiane tutajfunkcje cakowitoliczbowe czsto wystpuj w wielu algorytmach takichjak zamiana podstawy liczenia czy generowanie liczb pseudolosowych.

  • Rozdzia 4

    Teoria liczb

    4.1. Podzielno, NWD i NWW . . . . . . . . . . . . . . . . 624.2. Liczby pierwsze . . . . . . . . . . . . . . . . . . . . . . 654.3. Reprezentacja liczb wymiernych - drzewo

    Sterna - Brocota . . . . . . . . . . . . . . . . . . . . . 704.4. Kongruencje . . . . . . . . . . . . . . . . . . . . . . . . 734.5. Funkcja Eulera i algorytm RSA . . . . . . . . . . . . 76

  • 62 4. Teoria liczb

    4.1. Podzielno, NWD i NWW

    Niech m,n Z. Przez m|n oznaczamy fakt, e istnieje liczba cakowitak taka, e n = mk (np. 3|12). Podobniem 6 |n (3 6 |7). Dodatni cakowitliczb p nazywamy pierwsz, jeeli ma dokadnie dwa rne dzielniki: 1 i p.Std 1 nie jest liczb pierwsz (dzieli si tylko przez 1) ale liczbami pierw-szymi s m.in. {2, 3, 5, 7, 11, 13, 17, 19, ...}. Dla liczby pierwszej p i liczbynaturalnej r i cakowitej n mwimy, e pr jest dokadnym dzielnikiem n(pr||n) jeli pr|n i pr+16 |n.Twierdzenie 4.1.1. Dla dowolnych cakowitych a, b, c,m, n, oraz natural-nych d, e, p, r zachodzi:

    (i) a|b = (a b) ( bab) ( kZ ak|bk) (

    cN a|bc),

    (ii) a|b b|c = a|c,(iii) a|b a|c a|(bm+ cn) a|c,(iv) a|b b|a = a = b,(v) a|b = am|bm,(vi) pr||d ps||e = pr+s||de,(vii) pr||d ps||e = pmin{r,s}||(d + e).

    Definicja 4.1.1. Najwikszym wsplnym dzielnikiem i najmniejsz wsplnwielokrotnoci liczb m i n nazywamy

    NWD(m,n) = max{k : k|m k|n},NWW (m,n) = min{k : m|k n|k}.

    Twierdzenie 4.1.2. Dla dowolnych cakowitych a, b, c, zachodzi:

    (i) a|b a|c = a|NWD(b, c),(ii) a|c b|c = NWW (a, b)|c,(iii) NWD(d, e) = NWD(e mod d, d) d < e,(iv) NWD(a, b) = c = NWD(ac , bc) = 1,(v) NWD(a+ bc, b) = NWD(a, b),(vi) a, b, c 6= 0 = NWD(ac, bc) = |c|NWD(a, b),(vii) NWD(a, c) = NWD(b, c) = 1 = NWD(ab, c) = 1.

    Szczeglnie interesujca jest wasno (iii) bdca konsekwencj Twier-dzenia 4.1.1. (iii) i stanowica podstaw rekurencyjnj definicji NWD:

  • 4.1. Podzielno, NWD i NWW 63

    {NWD(n, 0) = n,NWD(n,m) = NWD(m,n mod m),

    ktra jest podstaw obliczania NWD(n,m) dla dowolnych liczb cako-witych n i m, nastpujcym algorytmem

    Algorytm 4.1. Algorytm Euklidesa

    i n t e g e r funct ion NWD(n ,m: i n t e g e r ) ;{k : i n t e g e r ;i f m=0 then

    NWD:=ne l s e

    NWD:=NWD(m, n mod m) ;}

    Przykad 4.1.1. Chcemy obliczy NWD(28, 36) wtedy mamy

    28 = 0 36 + 28,36 = 1 28 + 8,28 = 3 8 + 4,8 = 2 4 + 0,

    lub w skrcie NWD(28, 36) = NWD(36, 28) = NWD(28, 8) = NWD(8, 4) =NWD(4, 0) = 4.

    Analogicznie jeli chcemy obliczy NWD(15, 25) to

    15 = 1 25 + 10,25 = 2 10 + 5,10 = 2 5 + 0,

    czyli NWD(15, 25) = NWD(25, 10) = NWD(10, 5) = NWD(5, 0) = 5.

    NatomiastNWW (n,m) obliczamy z tosamoci NWW (n,m) = nmNWD(n,m) .

    Uwaga 4.1.3. Dla dowolnych liczb cakowitych m,n istniej liczby cako-wite m, n takie, e

    mm+ nn = NWD(n,m).

  • 64 4. Teoria liczb

    Dowd. Jeeli m = 0 to bierzemy m = 0, n = 1 w przeciwnym raziestosujemy t metod rekurencyjnie dla r = n mod m i m zamiast m i n. Zzaoenia rekurencyjnego istniej liczby r i m takie, e

    (m b nmcr)m+ rn = r(n b n

    mcm) +mm = r(n mod m) +mm

    = NWD(n mod m,m) = NWD(n,m).

    Przykad 4.1.2. W przykadzie 4.1.1 mamy

    8 = 1 36 + (1) 284 = 28 3 8 = 28 3 (36 28) = (3) 36 + 4 28.

    Nastpujcy algorytm wylicza liczby m i n speniajce Uwag 4.1.3:

    Algorytm 4.2. Rozszerzony algorytm Euklidesai n t e g e r funct ion NWD(n ,m, n ,m : i n t e g e r ) ;

    n0 , m0, r , s , new_r , new_s , r e sz ta , i l o r a z : i n t e g e r ;{ Dane s liczby n i m. Program zwraca NWD(n,m) i wyliczone n oraz m. }n0:=n ; m0:=m;n :=1 ; m :=0 ;r :=0; s :=1;{ Utrzymujemy n n+mm=n0 oraz r n+s m=m0 }whi le (m00)

    {r e s z t a :=n0 mod m0;i l o r a z :=b n0/m0 c ;n0:=m0;m0:= r e s z t a ;new_r:=n i l o r a z r ;new_s:=m i l o r a z s ;n := r ;m := s ;r :=new_r ;s :=new_s ;

    }{ Wtedy NWD(n ,m)=n0=n n+mm }NWD:=n0 ;

    Uwaga 4.1.4. Zauwamy, e dla ustalonej liczby naturalnej n:{mN :m|n}

    am =

    {mN :m|n}a nm.

  • 4.2. Liczby pierwsze 65

    4.2. Liczby pierwsze

    Jak wspomniano wczeniej liczba naturalna p jest liczb pierwsz, jelima dokadnie dwa dzielniki 1 i p. Zestawimy liczby pierwsze mniejsze od1000 w nastpujcej tabelce:

    Tabela 4.1. Liczby pierwsze mniejsze od 1000.

    2 3 5 7 11 13 17 19 23 2931 37 41 43 47 53 59 61 67 7173 79 83 89 97 101 103 107 109 113127 131 137 139 149 151 157 163 167 173179 181 191 193 197 199 211 223 227 229233 239 241 251 257 263 269 271 277 281283 293 307 311 313 317 331 337 347 349353 359 367 373 379 383 389 397 401 409419 421 431 433 439 443 449 457 461 463467 479 487 491 499 503 509 521 523 541547 557 563 569 571 577 587 593 599 601607 613 617 619 631 641 643 647 653 659661 673 677 683 691 701 709 719 727 733739 743 751 757 761 769 773 787 797 809811 821 823 827 829 839 853 857 859 863877 881 883 887 907 911 919 929 937 941947 953 967 971 977 983 991 997

    4.2.1. Podstawowe twierdzenie arytmetyki

    Twierdzenie 4.2.1. Podstawowe twierdzenie arytmetyki. Kada licz-ba naturalna n 6= 1 moe by w sposb jednoznaczny przedstawiona jakoiloczyn liczb pierwszych

    n = p1 p2 ... pm =mk=1

    pk, ,

    gdzie p1 p2 p3 ... pm jest niemalejcym cigiem liczb pierwszych.Jeeli przyj, e

    0k=1 pk = 1 to do tej wasnoci mona wczy n = 1.

    Dowd. Indukcja wzgldem n.Krok 1. Dla n = 1, p1 = 1 twierdzenie prawdziwe.Krok 2. Zamy, e twierdzenie jest prawdziwe dla wszystkich liczb

    naturalnych mniejszych od n. Jeli liczba n nie ma dzielnikw rnych od 1 in to jest ona liczb pierwsz a. Jeli ma dzielnik k, 1 < k < n, ktry jest liczbzoon, to z zaoenia indukcyjnego zarwno k jakl i n/k mona przedstawi

  • 66 4. Teoria liczb

    jako iloczyny liczb pierwszych a wic i n = k nk mona przedstawi jakoiloczyn liczb pierwszych.

    Zamy, e n nie ma jednoznacznego rozkadu (czyli ma dwa rnerozkady. Zatem n = p1p2...pm, p1 p2 ... pm oraz n = q1q2...qt, q1 q2 ... qt. Mona przyj, e pj = qj, j < i, i z symetrii pi < qi. Wtedy

    n = p1 p2 ... pi1 c

    a pi ... pm

    n = q1 q2 ... qi1 c

    b qi ... qt

    Mamy a = b oraz NWD(a, b) = a = b a wobec tego jeli pi|a to i pi|b a wten sposb dochodzimy do sprzecznoci, bo pi 6= qi (pi < qi) a wic pi niemoe by adnym z dzielnikw qi...qt.

    Jeeli zliczymy krotnoci wystpowania kolejnych liczb pierwszych (p1wystpuje d1-razy, itd..) to powyszy wynik moemy sformuowa

    Twierdzenie 4.2.2. Skrcona wersja podstawowego twierdzenia aryt-metyki. Kad liczb naturaln n mona jednoznacznie przedstawi w po-staci

    n =mk=1

    pdkk ,

    gdzie p1 < p2 < ... < pm jest rosncym cigiem liczb pierwszych a {di, 1 i m} cigiem dodatnich liczb naturalnych.

    Na przykad:

    6 = 2 3,245 = 5 72,10! = 28 34 52 7,

    68 718 821 377 = (217 1) (219 1).

    Najwiksz obecnie znan liczb pierwsz jest 243 112 6091.Ma ona 12 978 189i otrzymano j w sierpniu 2008 roku.

    Problem znalezienia przedstawienia dowolnej liczby naturalnej n w po-staci iloczynu liczb pierwszych nosi nazw problemu faktoryzacji i problemten doczeka si wielu algorytmw. Jeeli w faktoryzacji jedynym pierwszymskadnikiem jest n to w konkluzji otrzymujemy stwierdzenie, e n jest liczbpierwsz, w pozostaych przypadkach n nie jest liczb pierwsz. Algorytmy

  • 4.2. Liczby pierwsze 67

    faktoryzacji su wic te do testowania, czy dana liczba jest pierwsza, sone jednak mao wydajne. Najprostszy taki algorytm prezentujemy poniej

    Algorytm 4.3. Test dzielnikw

    Dane: Liczba naturalna n 2,

    Wynik: j (najmniejszy pierwszy czynnik n) lub stwierdzenie, e n jest liczbpierwsz

    j := 2 ;whi le j n

    {Jeli j|n wtedy j jest najmniejszym pierwszym czynnikiem n

    i stop {n nie jest liczb pierwsz}j := j + 1 ;

    }{Nie znaleziono pierwszych czynnikw n wic n jest liczb pierwsz}

    Oczywicie koszt (ilo obrotw ptli) tego algorytmu wynosi w jagor-szym przypadku

    n. Mona ten koszt troch zmniejszy rozwaajc dla

    j 3 co drug a nie kolejne liczby (j = 2, 3, j + 2). To ulepszenia ma zwi-zek z sitem Eratostenesa ktre omwimy w podrozdziale 4.2.3. Zwrmy teuwag, e nie zatrzymujc algorytmu po znalezieniu najmniejszego dzielni-ka n, moemy atwo otrzyma wszystkie dzielniki danej liczby n. Formalnieodpowiada to zastpieniu instrukcji stop instrukcj wydaj j i n/j.

    4.2.2. Reprezentacja liczb naturalnych

    Podajmy kilka kolejnych liczb pierwszych:

    2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, ...

    i ponumerujmy te liczby, tak e n(2) = 1, n(3) = 2, n(5) = 3, n(7) = 4, ....Z kad liczb naturaln n o przedstawieniu n =

    mk=1 p

    dkk , kojarzymy cig

    < 0, .., 0, d1, 0, ..0, d2, ... > gdzie odpowiednie liczby di znajduj si na pozy-cji n(pi), 1 i m. Tak wic na przykad:

    9 = 32 =< 0, 2, 0, ... >,

    14 = 2 7 =< 1, 0, 0, 1, 0, ... >,24 = 23 3 =< 3, 1, 0, ... > .

    Kolejne elementy tej reprezentacji oznacza bdziemy przez n =< n1, n2, n3, ... > .atwo wida, e wszystkie wyrazy od pewnego miejsca s rwne 0, oraz e

  • 68 4. Teoria liczb

    (k = m n) (p=1,2,...kp = mp + np),(k = NWD(m,n)) (p=1,2,...kp = min{mp, np}),(k = NWW (m,n)) (p=1,2,...kp = max{mp, np}).

    Definicja 4.2.1. Liczby n,m Z nazywamy wzgldnie pierwszymi mnjeli NWD(n,m) = 1.

    Uwaga 4.2.3.

    (mn) (p=1,2,...min(np,mp) = 0, )(mn) (p=1,2,...npmp = 0.)

    4.2.3. Wasnoci i wyznaczanie liczb pierwszych

    Ile jest liczb pierwszych i jak je moemy wyznacza? Na pierwsz czpytania daje nastpujcy wynik sformuowany w formie hipotezy przez Car-la Friedricha Gaussa w 1792 rok