Matematyka Dyskretna - Władysław Skarbek

106
Matematyka Dyskretna Władysław Skarbek Państwowa Wyższa Szkoła Informatyki i Zarządzania Październik 2004 – Styczeń 2005 Spis treści 1 Zbiory 3 1.1 Zbiory a typy danych ......................... 3 1.2 Elementy i podzbiory ......................... 4 1.3 Definiowanie zbioru – notacja .................... 5 1.4 Paradoks Russela ........................... 6 1.5 Operacje mnogościowe ........................ 7 1.6 Arytmetyczne typy danych ..................... 7 1.7 Zbiór potęgowy a kombinacje i permutacje ............. 9 1.8 Produkt kartezjański ......................... 10 1.9 Relacje ................................. 11 1.10 Funkcje ................................ 13 1.11 Złożony typ danych a produkt kartezjański ............ 15 1.12 Generalizacja typów danych ..................... 16 1.13 Atrybuty i cechy ........................... 17 1.14 Tabela relacyjna ........................... 18 1.15 Ciągi i macierze ............................ 19 1.16 Diagramy relacyjne w UML ..................... 20 2 Algebry 21 2.1 Intuicje informacyjne algebry .................... 22 2.2 Definicja algebry ogólnej ....................... 22 2.2.1 Algebry a klasy obiektów .................. 23 2.2.2 Diagramy klas w UML .................... 23 2.3 Algebra Boole’a ............................ 23 2.4 Układy zupełne funkcji Boole’a ................... 27 2.5 Własności algebry Boole’a ...................... 29 2.6 Mapa Karnaugh ........................... 30 2.7 Rachunek zdań ............................ 31 2.7.1 Spójniki logiczne ....................... 31 2.7.2 Wyrażenia logiczne ...................... 32 2.7.3 Wyrażenia logiczne a zbiory ................. 34 1

description

Matematyka Dyskretna

Transcript of Matematyka Dyskretna - Władysław Skarbek

  • Matematyka Dyskretna

    Wadysaw Skarbek

    Pastwowa Wysza Szkoa Informatyki i Zarzdzania

    Padziernik 2004 Stycze 2005

    Spis treci

    1 Zbiory 3

    1.1 Zbiory a typy danych . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Elementy i podzbiory . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Deniowanie zbioru notacja . . . . . . . . . . . . . . . . . . . . 51.4 Paradoks Russela . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.5 Operacje mnogociowe . . . . . . . . . . . . . . . . . . . . . . . . 71.6 Arytmetyczne typy danych . . . . . . . . . . . . . . . . . . . . . 71.7 Zbir potgowy a kombinacje i permutacje . . . . . . . . . . . . . 91.8 Produkt kartezjaski . . . . . . . . . . . . . . . . . . . . . . . . . 101.9 Relacje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.10 Funkcje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.11 Zoony typ danych a produkt kartezjaski . . . . . . . . . . . . 151.12 Generalizacja typw danych . . . . . . . . . . . . . . . . . . . . . 161.13 Atrybuty i cechy . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.14 Tabela relacyjna . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.15 Cigi i macierze . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.16 Diagramy relacyjne w UML . . . . . . . . . . . . . . . . . . . . . 20

    2 Algebry 21

    2.1 Intuicje informacyjne algebry . . . . . . . . . . . . . . . . . . . . 222.2 Denicja algebry oglnej . . . . . . . . . . . . . . . . . . . . . . . 22

    2.2.1 Algebry a klasy obiektw . . . . . . . . . . . . . . . . . . 232.2.2 Diagramy klas w UML . . . . . . . . . . . . . . . . . . . . 23

    2.3 Algebra Boolea . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.4 Ukady zupene funkcji Boolea . . . . . . . . . . . . . . . . . . . 272.5 Wasnoci algebry Boolea . . . . . . . . . . . . . . . . . . . . . . 292.6 Mapa Karnaugh . . . . . . . . . . . . . . . . . . . . . . . . . . . 302.7 Rachunek zda . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    2.7.1 Spjniki logiczne . . . . . . . . . . . . . . . . . . . . . . . 312.7.2 Wyraenia logiczne . . . . . . . . . . . . . . . . . . . . . . 322.7.3 Wyraenia logiczne a zbiory . . . . . . . . . . . . . . . . . 34

    1

  • 2.7.4 amigwka krla . . . . . . . . . . . . . . . . . . . . . . . 352.8 Rachunek predykatw i kwantykatorw . . . . . . . . . . . . . . 36

    2.8.1 Predykaty . . . . . . . . . . . . . . . . . . . . . . . . . . . 362.8.2 Kwantykatory . . . . . . . . . . . . . . . . . . . . . . . . 38

    2.9 Homomorzm algebr . . . . . . . . . . . . . . . . . . . . . . . . . 412.10 Rachunek reszt . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432.11 Arytmetyka cyfrowa w staym przecinku . . . . . . . . . . . . . . 452.12 Arytmetyka cyfrowa w zmiennym przecinku . . . . . . . . . . . . 46

    2.12.1 Wzorce bitowe w IEEE 754 . . . . . . . . . . . . . . . . . 50

    3 Schematy rekurencyjne 50

    3.1 Wiee Hanoi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533.2 Konwersja wyraenia arytmetycznego na ONP . . . . . . . . . . 553.3 Generowanie kodu maszynowego wyraenia arytmetycznego . . . 583.4 Klasyczna indukcja matematyczna . . . . . . . . . . . . . . . . . 60

    3.4.1 Indukcja matematyczna wybrane przykady . . . . . . . 613.4.2 Obliczanie sum metod rnic . . . . . . . . . . . . . . . . 65

    3.5 Rwnania rekurencyjne . . . . . . . . . . . . . . . . . . . . . . . 663.6 Zliczanie obiektw kombinatorycznych . . . . . . . . . . . . . . . 72

    3.6.1 Wspczynniki dwumienne . . . . . . . . . . . . . . . . . 723.6.2 Wasnoci liczbowe zbiorw i funkcji . . . . . . . . . . . . 753.6.3 Zasada wczania i wyczania . . . . . . . . . . . . . . . 753.6.4 Podziay . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773.6.5 Zbiory z powtrzeniami . . . . . . . . . . . . . . . . . . . 773.6.6 Zliczanie drzew binarnych . . . . . . . . . . . . . . . . . . 78

    4 Kongruencje 80

    4.1 Podzielno liczb cakowitych . . . . . . . . . . . . . . . . . . . . 814.1.1 Kombinacje liniowe dwch liczb cakowitych . . . . . . . . 844.1.2 Algorytm Euklidesa dla NWP . . . . . . . . . . . . . . . . 854.1.3 Rozszerzony algorytm Euklidesa dla NWP . . . . . . . . . 864.1.4 Przykad rozlewanie pynw . . . . . . . . . . . . . . . . 884.1.5 Liczby pierwsze wprowadzenie . . . . . . . . . . . . . . 904.1.6 Faktoryzacja na liczby pierwsze . . . . . . . . . . . . . . . 914.1.7 Liczby pierwsze sito Eratostenesa . . . . . . . . . . . . . 934.1.8 Liczby Mersena . . . . . . . . . . . . . . . . . . . . . . . . 934.1.9 Liczby Fermata . . . . . . . . . . . . . . . . . . . . . . . . 94

    4.2 Algebra reszt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 954.2.1 Rwnania w resztach . . . . . . . . . . . . . . . . . . . . . 984.2.2 Chiskie twierdzenie o resztach . . . . . . . . . . . . . . . 994.2.3 Twierdzenia Fermata o resztach . . . . . . . . . . . . . . 1014.2.4 Funkcja Eulera . . . . . . . . . . . . . . . . . . . . . . . . 1024.2.5 Twierdzenie Eulera o resztach . . . . . . . . . . . . . . . . 1034.2.6 Szyfrowanie algorytm RSA . . . . . . . . . . . . . . . . 104

    2

  • Przedmowa

    Matematyka dyskretna w ujciu tego wykadu ma na celu wprowadzenie koncep-cji matematycznych lecych u podstaw takich obszarw wiedzy informatycznejjak jzyki i techniki programowania, ukady logiczne i arytmetyczne maszyncyfrowych oraz algorytmy szyfrowania danych.Zaczynamy od pojcia zbioru i szeregu pochodnych poj mnogociowych, ktrecile wi si z koncepcj typu danych, atrybutu obiektu w systemie informa-cyjnym, tabeli w relacyjnej bazie danych oraz instancji obiektu danego typu.Kolejnym prezentowanym obszarem s algebry i ich zwizek z projektowaniemjednostek arytmetycznych i logicznych w maszynach cyfrowych, z koncepcjklasy obiektw i algebraicznym modelem programu komputerowego.Rozdzia powicony schematom rekurencyjnym omawia indukcyjne technikideniowania obiektw matematycznych. Obejmuje on szereg przykadw za-stosowania koncepcji rekursji w przyrostowym deniowaniu zoonych strukturdanych i algorytmw dziaajcych na nich.Wykad zamyka dyskusja zastosowa rachunku reszt w kryptograi. Przedsta-wiono wybrane algorytmy szyfrowania danych wraz z ich teoretycznymi podsta-wami.

    1 Zbiory

    Zbir jest pojciem pierwotnym ten typ tak ma

    Przykad zbioru: ksigozbir Polskiej Biblioteki Narodowej

    Intuicje zbioru:

    Zbir to kolekcja, zestaw elementw

    Specyczna wasno wyrnia elementy

    Elementy nale do pewnego uniwersum

    Zbir jest podzbiorem pewnego uniwersum

    1.1 Zbiory a typy danych

    Intuicje informatyczne:

    Ksika to zoony typ danych

    Konkretny egzemplarz Pana Tadeusza w ksigozbiorze to instancjatypu Ksika

    3

  • Ten konkretny egzemplarz naley do zbioru wszystkich instancji typuKsika

    Ksigozbir to specyczna Kolekcja

    Ksigozbir Biblioteki Narodowej to instancja typu Ksigozbir

    Wnioski:

    Typ danych nie jest zbiorem

    Typ danych T okrela wasno instancja danych jest typu T

    Wasno instancja danych jest typu T deniuje zbir wszystkichinstancji typu T

    wiczenia

    1. Podaj przykadowe atrybuty obiektu typu Ksika.

    2. Typ Kolekcja jest generalizacj typu Ksigozbir. Jakich atrybutw typuKsigozbir nie posiada Kolekcja ?

    3. Okrel typ danych, ktrego zbir wszystkich instancji jest zbiorem wszyst-kich danych osobowych studentw PWSIiP.

    1.2 Elementy i podzbiory

    przynaleno, np.: x X x jest elementem zbioru X y / X y nie jest elementem zbioru X

    , podzbir, nadzbir, np.: A B A jest podzbiorem zbioru B B A B jest nadzbiorem zbioru A

    (,) podzbir, nadzbir waciwy, np.:

    A ( B A jest podzbiorem waciwym zbioru B

    B ) A B jest nadzbiorem waciwym zbioru A

    = rwno, 6= rno np.: A = B zbiory A i B s identyczne

    A 6= B zbiory A i B s rne Skrt: wtt wtedy i tylko wtedywiczeniaUzasadnij nastpujce wasnoci inkluzji:

    4

  • 1. A B wtt A ( B lub A = B.2. Jeli A ( B, to A 6= B.3. A A.4. Jeli A B i B C, to A C.

    1.3 Deniowanie zbioru notacja

    zbir pusty {, . . . , } wyliczenie elementw zbioru, np.:

    A = {1, 2, 3, 4, 5, 6} zbir skada si z liczb cakowitych od 1 do 6 B = {1, 2, . . . , 12} zbir liczb naturalnych od 1 do 12 N , {1, 2, 3, . . .} zbir liczb naturalnych Z , {0,1,2,3, . . .} zbir liczb cakowitych

    {x :W (x)} zbir tych x, ktre speniaj warunek W (x), np.: ZP , {x : x Z, 2 dzieli x} zbir liczb cakowitych parzystych Q , {x : x = pq gdzie q N, p Z} zbir liczb wymiernych R = {x : x Q lub jest granic cigu liczb wymiernych } zbirliczb rzeczywistych

    wiczenia

    1. Zapisz wasno denicyjn zbioru liczb pierwszych.

    2. Czy kada liczba rzeczywista o skoczonym dziesitnym zapisie pozycyj-nym jest liczb wymiern ?

    3. Podaj przykad liczby wymiernej, ktrej nie mona zapisa skoczon licz-b cyfr dziesitnych.

    Zadania

    1. Podaj przykad liczby wymiernej, ktra w zapisie dziesitnym ma sko-czon liczb cyfr, a w zapisie dwjkowym nie ma skoczonego zapisu.

    2. Dla liczby rzeczywistej x = 0, b1, b2, . . . podaj cig liczb wymiernych zbie-ny do x.

    5

  • 1.4 Paradoks Russela

    Niech U bdzie zbiorem wszystkich zbiorw

    Wasno: U jest wasnym elementem

    Rozwamy zbir S, ktry jest zbiorem wszystkich zbiorw nie bdcychwasnym elementem:

    S , {Z : Z / Z}

    Pytania:

    1. Czy S S ?2. Czy S / S ?

    Paradoks:

    1. Jeli S S, to S / S2. Jeli S / S, to S S

    Wasno denicyjna zbioru S jest sprzeczna

    Paradoks fryzjera:W pewnej jednostce wojskowej jest fryzjer, ktry goli wszystkich tychmczyzn w jednostce, ktrzy si sami nie gol. Czy on si sam goli ?

    Paradoks kamcy:Pewien osobnik zawsze kamie. Pewnego dnia wygosi on sentencj Jazawsze kami. Czy tym razem skama ?

    wiczenieNiech S bdzie zbiorem okrelonym w paradoksie Russela.

    Dlaczego z tego, e S S wynika S / S ? Dlaczego z tego, e S / S wynika S S ?

    Zadania

    Wyjanij na czym polega paradoks fryzjera

    Wyjanij na czym polega paradoks kamcy

    6

  • 1.5 Operacje mnogociowe

    ,, operacje sumy, iloczynu i rnicy dwch zbiorw, np.: A B suma zbiorw A i B A B iloczyn zbiorw A i B AB rnica zbiorw A i B

    | | liczno zbioru, np.: |A| = n zbir A ma n elementw |A B| liczno sumy zbiorw A i B

    suma n zbiorw:ni=1

    Ai , A1 An

    iloczyn n zbiorw:ni=1

    Ai , A1 An

    ZadaniaNiech A , U A. Uzasadnij nastpujce wasnoci operacji mnogociowych:

    1. przemienno: A B = B A,A B = B A2. czno: (A B) C = A (B C), (A B) C = A (B C)3. rozdzielczo: (AB)C = (AC)(BC), (AB)C = (AC)(BC)4. prawa deMorgana: A B = A B, A B = A B

    1.6 Arytmetyczne typy danych

    Typ arytmetyczny w jzyku programowania okrela liczbowy zbir moli-wych wartoci (instancji) zmiennych deniowanych w programie

    Przykad z jzyka C: deklaracjaint k;

    mwi,e zmienna k ma wartoci typu cakowitego

    Uwagi:

    Zmienna cakowita w realizacji komputerowej ma skoczony zbirwartoci

    7

  • Kodowanie wartoci cakowitej ustalone jest przez model jednostkiarytmetyczno-logicznej ALU (ang. Arithmetic-Logic Unit) zwyklejest to kod uzupeniajcy do dwch (ang. 2s complement)

    Zapis x Z w matematyce oznacza, e x moe przyj dowoln cakowitwarto liczbow

    Deklaracja int k; w jzyku C oznacza, e w programie komputerowym kmoe przyjmowa wartoci z podzbioru liczb cakowitych I32 kodowanegona 32 bitach, gdzie

    In , {i Z : 2n1 i < 2n1}

    unsigned int k; ogranicza wartoci zmiennej k do podzbioru liczb na-turalnych I+32 kodowanego na 32 bitach, gdzie

    I+n , {i Z : 0 i < 2n}

    Deklaracjefloat f; double d;

    mwi, e zmienne f,d maj wartoci typu rzeczywistego

    Uwagi:

    Zmienna rzeczywista w realizacji komputerowej ma skoczony zbirwartoci

    Kodowanie wartoci rzeczywistej odbywa si w reprezentacji o zmien-nym przecinku z pojedyncz precyzj (deklaracja float) lub podwj-n precyzj (deklaracja double) zwykle zgodnie ze standardem IE-EE 774 Floating Point Numbers

    float f; ogranicza wartoci zmiennej f do podzbioru liczb rzeczywistychR32,8 kodowanego na 32 bitach z cech na 8 bitach, gdzie zgodnie ze stan-dardem IEEE 774 Floating Point Numbers

    R32,8 [1038,53,1044,85] {0} [1044,85, 1038,53]

    double d; ogranicza wartoci zmiennej d do podzbioru liczb rzeczywistychR64,11 kodowanego na 64 bitach z cech na 11 bitach, gdzie zgodnie zestandardem IEEE 774 Floating Point Numbers

    R64,11 [10308.3,10323.3] {0} [10323.3, 10308.3]

    wiczeniaUzasadnij dla n N nastpujce wasnoci:

    1. In ( In+1

    8

  • 2. I+n ( In+1

    3. I+n ( I+n+1

    ZadaniaPoka dla dowolnego k N :

    1. Z =n=k In

    2. N = {0} n=k I+nProblemUzasadnij, e kada liczba rzeczywista x 6= 0 da si zapisa jednoznacznie wnotacji naukowej:

    x = (1)s(x)m(x)2c(x)gdzie s(x) {0, 1} bit znaku, m(x) [ 12 , 1) mantysa, c(x) Z cechaliczby x.

    1.7 Zbir potgowy a kombinacje i permutacje

    Niech U bdzie skoczonym uniwersum, n , |U |. Wtedy Zbir 2U , {Z : Z U} nazywamy zbiorem potgowym Liczno zbioru potgowego: |2U | = 2|U|

    Jeli k {0} N i 0 k n, to k-elementowy podzbir Z U nazy-wamy k-elementow kombinacj elementw z U. Zbir takich kombinacjioznaczamy przez Uk, a jego liczno prze ck,n

    Wasnoci:

    U0 = {}, c0,n , |U0| = 1 Jeli k 6= k, to Uk Uk = 2U =

    nk=0 Uk oraz

    nk=0 ck,n = 2

    n

    Dla 0 < k n : ck,n+1 = ck,n + ck1,n Dowolne uporzdkowanie zbioru U nazywamy permutacj tego zbioru

    Wasnoci:

    Zbir n-elementowy ma n! rnych permutacji, gdzie n! jest iloczy-nem liczb od 1 do n :

    n! , 1 n Liczba ck,n kombinacji k-elementowych ze zbioru n-elementowego dlak > 0 wynosi

    ck,n =n!

    k!(n k)!

    9

  • wiczeniaOblicz liczno zbioru potgowego 2U dla:

    1. U = {0, 1}2. U = {1, 2, 3}3. U = {1, 2, . . . , n}

    Zadania

    1. Narysuj trjkt Pascala dla n = 5.

    2. Sprawd prawdziwo wzoru

    ck,n =n!

    k!(n k)!

    ProblemNiech U = {1, 2, . . . , n}, n > 2

    1. Ile permutacji zbioru U ma jedynk na pozycji 2 ?

    2. Ile permutacji zbioru U ma jedynk pooon na prawo od dwjki ?

    1.8 Produkt kartezjaski

    Niech A1, A2, . . . , An bd dowolnymi zbiorami. Wtedy

    (a1, a2) oznacza uporzdkowan par elementw gdzie a1 A1 jest pierw-sz skadow pary, za a2 A2 jej drug skadow

    A1 A2 , {(a1, a2) : a1 A1, a2 A2} produkt kartezjaski zbioru A1i zbioru A2

    (a1, . . . , an) oznacza uporzdkowan krotk elementw gdzie ai Ai jesti-t skadow tej krotki, i = 1, . . . , n

    A1 An , {(a1, . . . , an) : a1 A1, . . . an An} produkt kartezja-ski zbiorw A1, . . . , An

    Jeli A1 = = An = A, to produkt kartezjaski A A oznaczamyprzez An

    wiczeniaNiech A = {0, 1}, B = {2, 3}. Wyznacz:

    1. C = AA2. D = B B

    10

  • 3. AB4. B A5. C D

    ZadaniaNiech A = [0, 1], B = [1/4, 3/4]

    1. Podaj interpretacj zbiorw A2 oraz A3

    2. Wyznacz pole zbioru A2 B2

    3. Wyznacz objto zbioru A3 B3

    Problemy

    1. Poka, e dla dowolnych a, a A, b, b B :

    {a, {a, b}} = {a, {a, b}} wtt a = a oraz b = b

    Wniosek: Zbir {a, {a, b}} moe by traktowany jako zbir denicyjny dlapary elementw (a, b).

    2. Niech A,B,C,D U. Podaj warunek dostateczny i konieczny na to by

    (AB) (C D) = (A C) (B D)

    1.9 Relacje

    Intuicja: Relacja modeluje wspwystpowanie dwch lub wicej elemen-tw w zwizkach o dowolnym charakterze

    Przykady relacji:

    R1 , {(x, y) : x jest ojcem y} R2 , {(x, y, z) : punkty x, y, z s wspliniowe } R3 , {(x, k, p, s) : ocena x z kolokwium k

    na przedmiocie p otrzymana przez studenta s} Denicja relacji midzy elementami zbiorw A1, A2, . . . , An :Zbir R A1 An modeluje relacj n-argumentow

    Jeli n = 2, to relacja jest nazywana relacj binarn. Wtedy zamiast(a1, a2) R piszemy a1Ra2

    Relacja binarna moe by reprezentowana gracznie:jeli a1Ra2, to z wierzchoka o etykiecie a1 prowadzimy ga do wierz-choka o etykiecie a2 i z grotem wskazujcym na niego.

    11

  • Relacja odwrotna R1 do relacji binarnej R A1 A2 :

    R1 , {(a2, a1) : (a1, a2) R}

    Dziedzina relacji binarnej R A1 A2 :

    DR , {a1 A1 : a1Ra2 dla pewnego a2 A2}

    Przeciw-dziedzina relacji binarnej R A1 A2 :

    D1R , {a2 A2 : a1Ra2 dla pewnego a1 A1}

    Wasno: D1R = DR1

    Denicje:

    Relacja binarna jest zwrotna wtt aRa dla wszystkich a DR Relacja binarna jest symetryczna wtt (aRb wtt bRa)

    Relacja binarna jest przechodnia wtt aRb i bRc implikuje aRc

    Relacja binarna zwrotna, symetryczna i przechodnia nazywa si re-lacj rwnowanoci

    Niech [x]R , {y A : xRy} bdzie tzw. klas rwnowanoci relacjirwnowanoci R o dziedzinie A. Wtedy

    xRy wtt [x]R = [y]R

    dla dowolnych x, y A : [x]R = [y]R lub [x]R [y]R = Zbir wszystkich klas rwnowanoci relacji R w zbiorze A oznaczamyprzez A/R.

    wiczenia

    1. Okrel zbiory A,B,C,D, w produktach kartezjaskich ktrych okrelononastpujce relacje:

    (a) AB R1 , {(x, y) : x jest synem y}(b) AB C R2 , {(x, y, z) : punkty x, y, z nie s wspliniowe }(c) ABCD R3 , {(x, a, p, s) : ocena x wystawiona przez asystenta a

    na przedmiocie p studentowi s}

    2. Podaj po cztery przykady relacji

    (a) midzyludzkich wystpujcych w grupie pracowniczej

    (b) midzy dwoma dowolnymi koami na paszczynie

    (c) midzy dugoci, mas i mark samochodu

    12

  • 3. Narysuj graf nastpujcych relacji binarnych:

    (a) R4 , {(A,B), (B,C), (C,D), (D,A)}(b) R5 , {(A,B), (A,C), (A,D), (A,A)}(c) R6 , {(B,A), (C,A), (D,A), (A,A)}(d) R7 , {(B,A), (C,A), (D,A), (D,C), (C,B), (B,D)}

    4. Wyznacz relacjeR1i , i = 1, . . . , 7, tj. relacje odwrotne do relacjiR1, . . . , R7,zdeniowanych w powyszych wiczeniach.

    Zadania

    1. Kiedy dziedzina relacji jest pusta ?

    2. Kiedy przeciw-dziedzina relacji jest pusta ?

    3. Niech a, b Z, aRb wtedy i tylko wtedy gdy a i b s parzyste. Czy relacjaR jest relacj rwnowanoci ?

    4. Ile rnych klas rwnowanoci ma nastpujca relacja liczb cakowitychprzy ustalonym m Z :

    xRy wtt m dzieli x y

    Problemy

    1. Udowodnij: DR1 = D1R

    2. Okrelamy relacj R w zbiorze A instancji typu int w C nastpujco: xRywtt instancje x i y reprezentuj t sam liczb cakowit. Poka, e R jestrelacj rwnowanoci, dla ktrej A/R = I32.

    1.10 Funkcje

    Niech R A1 A2 bdzie relacj. Denicje:

    Obraz elementu a1 A1 :

    R(a1) , {a2 A2 : a1Ra2}

    Przeciw-obraz elementu a2 A2 :

    R1(a2) , {a1 A1 : a1Ra2}

    Binarna relacjaR nazywa si funkcj czciow wtt |R(a1)| = 1 dla wszyst-kich a1 DR.

    13

  • Funkcj czciow f identykujemy symbolami: f : A1 A2

    Funkcja czciowa f : A1 A2 nazywa si funkcj jeli Df = A1.

    Funkcj f identykujemy symbolami: f : A1 A2 Dla funkcji zapis relacyjny a1fa2 zastpujemy przez a2 = f(a1) lub a1

    f7a2

    Szczeglne rodzaje funkcji:

    f : A1 A2 jest jednoznaczn funkcj w A2 wtt |f1(a2)| = 1 dlawszystkich a2 Df1

    Wasno: Relacja odwrotna do funkcji jednoznacznej w jest funk-cj czciow

    f jest jednoznacznym odwzorowaniem A1 na A2 wtt |f1(a2)| = 1dla wszystkich a2 Df1 oraz Df1 = A2

    Wasno: Relacja odwrotna do funkcji jednoznacznej na jest funk-cj jednoznaczn na

    wiczenia

    1. Czy relacja x jest ojcem y jest funkcj w zbiorze wszystkich mczyzn?

    2. Czy relacja x jest synem y jest funkcj w zbiorze wszystkich mczyzn?

    3. Czy relacja x jest synem y jest funkcj czciow w zbiorze wszystkichmczyzn?

    4. Czy relacja osoba x ma yjcego ojca y jest funkcj czciow?

    5. Niech f(x) = |x| dla x [1, 1]. Wyznacz dla f(a) Przeciw-obraz zera

    (b) Przeciw-obraz y (0, 1](c) Przeciw-obraz y R [0, 1]

    Zadania

    1. Dlaczego funkcja f(x) = 1/x jest funkcj czciow w R ?

    2. Ile istnieje rnych funkcji postaci f : {0, 1} {0, 1}Problemy

    1. Poka, e graf relacji binarnej bdcej funkcj f : X X na skoczonymzbiorze X zawiera co najmniej jeden cykl.

    2. Poka, e funkcja jest jednoznaczna na wtedy i tylko wtedy gdy jej grafjako relacji binarnej skada si z rozcznych cykli.

    3. Sprawd, e liczba funkcji binarnych na zbiorze n-elementowym rwna siliczbie podzbiorw tego zbioru.

    14

  • 1.11 Zoony typ danych a produkt kartezjaski

    Niech A1, A2, . . . , An bd zbiorami instancji typw T1, . . . , Tn. Wtedy

    W jzykach programowania skadowe instancji zoonego typu zamiastnumeru pozycji maj swoje nazwy

    W jzyku C typ zoony jest nazywany struktur i ma on ogln posta:typedef struct{T1 nazwa1;...,Tn nazwan} T;z deklaracj zmiennej x typu T w postaci T x;lubstruct T {T1 nazwa1;...,Tn nazwan};z deklaracj zmiennej x typu T w postaci:struct T x;

    Przykad struktury numerycznej:typedef struct{double re; double im} Complex;

    Przykad struktury biznesowej:typedef struct{int seria, int numer, float cena, String opis} Produkt;

    Typ T zoony z typw T1, . . . , Tn ma instancje w postaci krotek o ska-dowych, ktre s instancjami kolejno typw T1, . . . , Tn

    Wniosek: Produkt kartezjaski zbiorw instancji typw T1, . . . , Tn jestzbiorem instancji typu zoonego T

    Jeli A jest zbiorem instancji typu danych T i R jest relacj rwnowanociw A, to zbir A/R nazywamy modelem MR typu danych T wzgldemrelacji R.

    Wasno: Jeli typ T jest zoony z typw T1, . . . , Tn i MR1 , . . . ,MRn smodelami tych typw, to MR jest modelem typy T wzgldem relacji Rokrelonej nastpujco w zbiorze instancji typu T :

    (x1, . . . , xn)R(y1, . . . , yn) wtt xiRiyi, i = 1, . . . , n

    Co wicej, model typu zoonego jest produktem kartezjaskim modeliskadowych:

    MR =MR1 MRnwiczenia

    1. Opisz zbir instancji typu danych zoonego

    (a) z dwch skadowych typu int:typedef struct{int m; int n;} T;

    (b) z trzech skadowych typu double:typedef struct{double a; double b; double c;} T;

    15

  • 2. Podaj trzy dowolne instancje typu:

    (a) Complex

    (b) Product

    ZadaniaModel typu danych Ti ma ni elementw, i = 1, 2. Ile elementw ma model typu

    1. typedef struct{T1 a; T2 b;} T3;

    2. typedef struct{T1 a; T2 b; T1 c;} T4;

    3. typedef struct{T1 a; T2 b; T1 c; T2 d;} T5;

    1.12 Generalizacja typw danych

    Przyrostowe tworzenie krotki:

    (a1, a2, a3) jest rwnowane ((a1, a2), a3)

    Przyrostowe tworzenie produktu kartezjaskiego:

    A1 A2 A3 = (A1 A2)A3

    Kontekst koncepcji generalizacji typw danych:

    Najpierw programujemy wasnoci oglne obiektu (np. ruch gury),a nastpnie jego specyczne atrybuty (np. wizualizacja koa)

    Rozszerzenie projektu o nowe funkcjonalnoci wymaga dodania no-wych atrybutw mechanizmy dziedziczenia w programowaniu obiek-towym pozwalaj je realizowa bez aktualizacji istniejcych ju mo-duw oprogramowania

    Przykady:

    Do przemieszczenia gury symetrycznej wzgldem jej rodka wystar-czy jego przemieszczenie. Natomiast narysowanie takiej gury, np.piercienia i koa wymaga znajomoci innych parametrw. Docze-nie tych parametrw do informacji o rodku jest przykadem rozsze-rzania typw danych lub dziedziczenia typw danych.

    W jzyku Java dodanie do typu T1 atrybutu nowyAtrybut symboli-zuje konstrukcja extends tworzc nowy typ danychT2:class T2 extends T1 {int nowyAtrybut;...}

    wiczeniaNiech T1 bdzie typem danych zoonym z dwch skadowych typu int:typedef struct{int m; int n;} T1;

    16

  • 1. Opisz zbir instancji typu danych, ktry specjalizuje T1 (operacja odwrot-na do generalizacji):

    (a) class T2 extends T1 {double a; double b;}

    (b) class T3 extends T1 {int k; int l;}

    2. Podaj trzy dowolne instancje typu

    (a) T2

    (b) T3

    ZadaniaModel typu danych Ti ma ni elementw, i = 1, 2. Ile elementw ma model typu

    1. class T3 extends T1 {T2 pole;}

    2. class T4 extends T2 {T1 pole;}

    1.13 Atrybuty i cechy

    Przykady stosowania poj atrybut, cecha:

    Jan ma 175 cm wzrostu obiekt: konkretny Jan; atrybut: wzrost;cecha: 175 cm

    Kolor dominujcy w tym obrazie jest czerwony obiekt: konkretnyobraz; atrybut: kolor dominujcy; cecha: kolor czerwony

    Toyota Corolla z silnikiem 2, 5 litra kosztuje 20 tysicy Euro obiekt:konkretny model samochodu; atrybut 1: pojemno silnika; cecha 1:2,5 litra; atrybut 2: cena; cecha 2: 20 tysicy Euro

    Cecha c C przysuguje obiektowi o O w kontekcie danego atrybutua :

    oa7 c, c = a(o)

    Atrybut a jest funkcj okrelon na zbiorze obiektw O o wartociach wzbiorze cech C

    a : O Cwiczenia

    1. Okrel obiekt, atrybut i cech w zdaniu

    (a) So ma dwie tony wagi.

    (b) Temperatura barwowa tego obrazu wynosi 3000 Kelvina

    (c) Ja ma 38 gorczki

    (d) Subaru Impreza ma moc 200 KM

    17

  • 2. Okrel zbir obiektw, atrybut i zbir cech dla

    (a) wagi soni w ZOO warszawskim

    (b) temperatur barwowych obrazw w Muzeum Narodowym

    (c) temperatur dzieci w przedszkolach omyskich

    (d) mocy samochodw produkowanych w Europie w roku 2003

    Zadania

    1. Podaj przykad atrybutu, ktrego cechy s trjkami liczb cakowitych zprzedziau [0, 255].

    2. Ile rnych atrybutw binarnych mona okreli na zbiorze trzech obiek-tw.

    1.14 Tabela relacyjna

    Kontekst tabeli relacyjnej: bazy danych takie jak baza Access, Oracle,Postgress, MySQL to kolekcje tabel relacyjnych

    Tabela relacyjna to dwuwymiarowy zestaw danych, w ktrym:

    wiersz tabeli odpowiada obiektowi danych

    kolumna tabeli reprezentuje atrybut

    element cij lecy na przeciciu wiersza obiektu oi i kolumny atry-butu aj jest cech tego obiektu

    cij = aj(oi) Cj Zwykle cecha w tabeli relacyjnej jest liczb, acuchem znakw (ang.String), lub jest instancj specjalnego typu, np. typu data, czas (ang.Date, Time)

    Dlaczego termin tabela relacyjna ? Jest kilka powodw:

    Tabela relacyjna z atrybutami a1, . . . , an reprezentuje nastpujcszczegln relacj:

    Ra , {(a1(o), . . . , an(o)) : o O} C1 Cn Krotka (a1(o), . . . , an(o)) to wiersz tabeli opisujcy obiekt o

    Dowoln relacj Ro midzy kolekcjami obiektw O1,O2 mona opisatzw. asocjacyjn tabel relacyjn z jednym atrybutem zoonym a

    a : O1 O2 N N,ktry przypisuje parze obiektw (o1, o2) par ich identykatorw (id(o1), id(o2))

    18

  • wiczenia

    1. Okrel obiekty, atrybuty, cechy i ich typy w nastpujcej tabeli relacyjnej

    Nazwisko Imi Waga [kg] Wzrost [cm]Abacki Karol 55,4 155Babacki Jan 47,6 134

    2. Zaprojektuj tabel relacyjn reprezentujc list ocen z Matematyki Dys-kretnej dla dwch kolokwiw i egzaminu pisemnego. Zapenij jeden wiersztej tabeli oczekiwanymi przez siebie danymi

    Zadania

    1. Czy tabela relacyjna moe zawiera dwa rne wiersze o tej samej zawar-toci ?

    2. Tabele w bazach danych mog mie niektre pozycje typu brak danych.Jak zmodykowa denicj atrybutu, by obejmowaa przypadki pozycjinie zdeniowanych ?

    1.15 Cigi i macierze

    Niech I Z bdzie zbiorem indeksw cakowitych. Cig c = (ci)iI elementw ze zbioru Z indeksowany przez I jest funkcjpostaci

    c : I Z, c(i) , ci Z, i I Przykady:

    Jeli I = N oraz Z = R, to cig c jest cigiem liczb rzeczywistych

    Jeli I = [1, n], to c jest wektorem dugoci n, c Zn Jeli I = [0, 9] oraz Z jest zbiorem instancji typu int w jzyku C,to c jest instancj macierzy jednowymiarowej deklarowanej jako intc[10];

    Niech Ij Z bdzie j-tym zbiorem indeksw cakowitych, j = 1, . . . , k. Niech i = (i1, . . . , ik) I , I1 . . . Ik bdzie wielo-indeksem Macierz elementw c = (ci)iI ze zbioru Z indeksowany przez I jest funk-cj postaci

    c : I Z, c(i) , ci, i I Przykady:

    Jeli I1 = I2 = N oraz Z = R, to cig c jest nieskoczon macierzliczb rzeczywistych

    19

  • Jeli I1 = [1,m], I2 = [1, n] to c jest macierz o m wierszach i nkolumnach. Zbir takich macierzy oznaczamy przez Zmn

    Jeli I1 = [0, 9], I2 = [0, 19] oraz Z jest zbiorem instancji typu floatw jzyku C, to c jest instancj macierzy deklarowanej jako doublec[10][20];

    wiczenia

    1. Okrel zbir indeksw dla

    (a) wektora wierszowego [c2, c1, c0, c1, c2, c3](b) wektora kolumnowego

    [c0, c1, c2, c3]t ,

    c0c1c2c3

    (c) macierzy kwadratowej [c0,0 c0,1c1,0 c1,1

    ](d) macierzy prostoktnej [

    c1,1 c1,2 c1,3c2,1 c2,2 c2,3

    ]2. Ile elementw zawiera macierz o zbiorze indeksw I = [0, 5]3 ?

    Zadania

    1. Dlaczego wektor jest szczeglnym przypadkiem macierzy dowolnego wy-miaru ?

    2. Ile elementw zawiera macierz o zbiorze indeksw I = I1 I2 I3, gdzie|Ii| = ni, i = 1, 2, 3 ?

    1.16 Diagramy relacyjne w UML

    wiczeniaNarysuj diagram relacyjny dla:

    1. roli Nauczyciel uczy matematyk jeli nauczyciel jest typu Pracownik, amatematyka jest typu Przedmiot nauczania

    2. generalizacji typu Koo, Prostokt i elipsa do typu Ksztat

    3. kompozycji typw rodek koa i Promie koa do typu Koo

    4. kolekcji obiektw typu Ksztat

    20

  • datatype

    Pracownik Umysowy

    datatype

    Kampania Reklamowaszef

    1 0..*

    kieruje

    datatype

    Reklama

    datatype

    Reklama TV

    datatype

    Reklama prasowa

    datatype

    Komponent

    1

    1..*

    Generalization

    Composition

    Aggregation

    Rysunek 1: Relacje w UML: composition kompozycja obiektw, aggregation kolekcje obiektw, generalization generalizacja (opozycja dziedziczenia)

    2 Algebry

    Pojcie algebry:

    1. Dziedzina D algebry, np. zbir liczb rzeczywistych, t.j. D = R2. Operacje O algebry, np. dodawanie, odejmowanie, mnoenie i dziele-

    nie w zbiorze liczb rzeczywistych, t.j. O = {+,, , /}3. Operacja ma ustalon liczb argumentw, np. dodawanie ma dwa

    argumenty

    4. Operacje mog by funkcjami czciowymi, np. dzielenie

    Przykady algebr:

    1. Zbir liczb cakowitychZ z dodawaniem+ i odejmowaniem: (Z; +,)2. Zbir liczb rzeczywistychR z dodawaniem +, odejmowaniem,mno-

    eniem i dzieleniem / : (R; +,, , /)3. Zbir izometrii I przestrzeni z operacj skadania funkcji: (I; )

    np. obrt na paszczynie o kt wok punktu O(x0, y0) :

    x = x0 + x cos() + y sin()y = y0 x sin() + y cos()

    np. symetria osiowa wzgldem osi x :

    x = xy = y

    21

  • wiczenia

    1. Dlaczego operacja dzielenia w R jest funkcj czciow?

    2. Jaka operacja okrelona jest w algebrze obrotw paszczyzny w siebie?

    3. Jaka operacja okrelona jest w algebrze izometrii paszczyzny w siebie?

    4. Jakie przeksztacenie okrelone jest przez zoenie dwch symetrii osio-wych wzgldem tej samej osi ?

    Zadania

    1. Uzasadnij, e zoenie dwch obrotw jest obrotem

    2. Uzasadnij, e zoenie dwch izometrii jest izometri

    2.1 Intuicje informacyjne algebry

    Jednostka arytmetyczno-logiczna (ALU) w komputerze (cz jednostkicentralnej CPU) realizuje operacje arytmetyczne i bitowe na liczbach zezbioru I64

    Kade zdanie programu C okrela funkcj na pamici komputera

    Kade zdanie programu C okrela funkcj na globalnym stanie programu

    Wynik programu jest zoeniem funkcji zoenie jest tu operacj w zbio-rze funkcji realizowanych przez kolejne zdania programu C

    Wynik programu jest zoeniem elementarnych operacji arytmetyczno-logicznych

    Algebra Boolea stanowi podstaw projektowania ukadw logicznych

    2.2 Denicja algebry oglnej

    Formalna denicja algebry oglnej:

    A , (X,K; fi : Xni . X, i = 1, . . . ,K)

    gdzie

    X jest dziedzin algebry

    fi jest i-t operacj algebry (funkcja czciowa!)

    ni jest liczb argumentw i-tej operacji

    22

  • 2.2.1 Algebry a klasy obiektw

    Algebra A czy w logiczn cao zbir X i operacje fi na tym zbiorze Klasa K w programowaniu obiektowym okrela zbir instancji (obiektw)tej klasy i jednoczenie operacje na tych instancjach i opcjonalnie na in-stancjach innych klas.

    Warto operacji klasy K moe by instancj klasy K 6= K, np.: class X{int x; improve(); Y produce(double a);}

    Biorc produkt kartezjaski zbiorw instancji rodziny klas, ktre s uy-wane w danej aplikacji moemy traktowa kad operacj w klasie jakooperacj w takim zbiorze. Otrzymujemy wic algebr.

    2.2.2 Diagramy klas w UML

    UML pozwala na reprezentacj graczn klasy (rys.2)

    Z diagramu klasy mona generowa denicj klasy w rnych jzykach,np. w Javie lub C++

    2.3 Algebra Boolea

    Operacja NOT : {0, 1} {0, 1}

    x , NOT(x) , 1 x, x {0, 1}

    Operacja AND : {0, 1} {0, 1} {0, 1}

    AND(x, y) , x&y , x y, x, y {0, 1}

    Operacja OR : {0, 1} {0, 1} {0, 1}

    OR(x, y) , x|y , x+ y xy, x, y {0, 1}

    Prawa deMorgana w algebrze Boolea:

    NOT OR:x|y = x&y

    23

  • Rysunek 2: Diagram klas w UML: klasa Shape jest generalizacj klas Circle,Rectangle

    NOT AND:x&y = x|y

    Funkcja Boolea, inaczej funkcja bitowa n argumentowa to kada funkcjaf taka, e:

    f : {0, 1}n {0, 1}wiczenia

    1. Czemu su operacje logiczne w CPU?

    2. Niech funkcja bitowa NAND bdzie okrelona wzorem:

    NAND(x, y) , x&y , x&y

    Sprawd, e x = x&x.

    3. Niech funkcja bitowa NOR bdzie okrelona wzorem:

    NOR(x, y) , | , x|ySprawd, e x = x|x.

    4. Czym si rni operacja skadania funkcji mnocych liczby cakowite odoperacji mnoenia liczb cakowitych?

    24

  • ZadaniaPoka, e funkcja f da si wyrazi przez funkcj g, gdzie

    1. f = NOT, g = NAND

    2. f = AND, g = NAND

    3. f = OR, g = NAND

    4. f = NOT, g = NOR

    5. f = OR, g = NOR

    6. f = AND, g = NOR

    Problemy

    1. Poka,e nastpujce funkcje bitowe maj warto 1 tylko w jednym ele-mencie dziedziny, a w pozostaych warto 0.

    x&y&z = 1 wtt x = 1, y = 1, z = 1x&y&z = 1 wtt x = 0, y = 1, z = 1x&y&z = 1 wtt x = 0, y = 0, z = 1x&y&z = 1 wtt x = 0, y = 0, z = 0

    2. Jaka jest posta wyraenia Boolea zoonego tylko z funkcji NOT orazAND, ktra przyjmuje 1 tylko w nastpujcym elemencie dziedziny:

    (a) x = 0, y = 1, z = 0

    (b) x = 1, y = 0, z = 0

    (c) x = 1, y = 0, z = 1

    (d) x = 1, y = 1, z = 0

    3. Oznaczmy funkcj bitow przyjmujc warto 1 tylko w elemencie (a, b, c)przez fa,b,c. Poka, e funkcja g przyjmuje warto 1 tylko w elementachze zbioru A, gdzie:

    (a) g(x, y, z) = f0,0,0(x, y, z)|f1,1,1(x, y, z), A = {(0, 0, 0), (1, 1, 1)}(b) g(x, y, z) = f1,0,0(x, y, z)|f0,1,0(x, y, z)|f0,0,1(x, y, z),

    A = {(1, 0, 0), (0, 1, 0), (0, 0, 1)}4. Poka, e kada funkcja bitowa f o trzech argumentach da si przedsta-

    wi jako zoenie funkcji NOT, AND, OR w tzw. dyzjunkcyjnej postacinormalnej:

    f(x, y, z) = OR(a,b,c):f(a,b,c)=1fa,b,c(x, y, z)

    gdzie ORIW (i) oznacza wyraenie czce operacj OR wartoci wyrae-nia W (i) otrzymane dla kadego i I.

    25

  • 5. Zapisz i uzasadnij uoglnienie dyzjunkcyjnej postaci normalnej dla dowol-nej funkcji bitowej o n argumentach, n > 1

    6. Zapisz posta dyzjunkcyjn normaln dla funkcji Boolea f zadanej tabel:

    x y z f(x,y,z)0 0 0 10 0 1 00 1 0 10 1 1 01 0 0 11 0 1 01 1 0 11 1 1 0

    7. Poka,e nastpujce funkcje bitowe maj warto 0 tylko w jednym ele-mencie dziedziny, a w pozostaych warto 1.

    x|y|z = 0 wtt x = 0, y = 0, z = 0x|y|z = 0 wtt x = 1, y = 0, z = 0x|y|z = 0 wtt x = 1, y = 1, z = 0x|y|z = 0 wtt x = 1, y = 1, z = 1

    8. Jaka jest posta wyraenia Boolea zoonego tylko z funkcji NOT orazOR, ktra przyjmuje 0 tylko w nastpujcym elemencie dziedziny:

    (a) x = 0, y = 0, z = 1

    (b) x = 0, y = 1, z = 0

    (c) x = 0, y = 1, z = 1

    (d) x = 1, y = 0, z = 1

    9. Oznaczmy funkcj bitow przyjmujc warto 0 tylko w elemencie (a, b, c)przez fa,b,c. Poka, e funkcja g przyjmuje warto 0 tylko w elementachze zbioru A, gdzie:

    (a) g(x, y, z) = f0,0,0(x, y, z)&f1,1,1(x, y, z), A = {(0, 0, 0), (1, 1, 1)}(b) g(x, y, z) = f1,0,0(x, y, z)&f0,1,0(x, y, z)&f0,0,1(x, y, z),

    A = {(1, 0, 0), (0, 1, 0), (0, 0, 1)}10. Poka, e kada funkcja bitowa f o trzech argumentach da si przedsta-

    wi jako zoenie funkcji NOT, OR i AND w tzw. koniunkcyjnej postacinormalnej:

    f(x, y, z) = AND(a,b,c):f(a,b,c)=1fa,b,c(x, y, z)

    gdzie ANDIW (i) oznacza wyraenie czce operacj AND wartoci wy-raenia W (i) otrzymane dla kadego i I.

    26

  • 11. Zapisz i uzasadnij uoglnienie koniunkcyjnej postaci normalnej dla dowol-nej funkcji bitowej o n argumentach, n > 1

    12. Zapisz posta koniunkcyjn normaln dla funkcji Boolea f zadan po-wysz tabel.

    2.4 Ukady zupene funkcji Boolea

    S zbir funkcji selekcji, t.j. funkcji postaci:f(x1, x2, . . . , xn) = xi dla pewnego i [1, n]

    C zbir funkcji staych, t.j. funkcji postaci:f(x1, x2, . . . , xn) = const

    Zbir funkcji Boolea F nazywa si ukadem zupenym wtt dowolna funkcjaBoolea da si przedstawi jako zoenie funkcji z F S C

    Zbir funkcji {|,&, } jest ukadem zupenym Zbir funkcji {&, } jest ukadem zupenym Zbir funkcji {|, } jest ukadem zupenym Zbir funkcji {|} jest ukadem zupenym Zbir funkcji {&} jest ukadem zupenym Fakt: Jeli funkcje ukadu zupenego A moemy otrzyma przez zoeniez funkcji ukadu B, to ukad B jest zupeny

    Funkcja Boolea f : {0, 1}n {0, 1} jest monotoniczna wttxi xi, i = 1, . . . , n f(x1, . . . , xn) f(x1, . . . , xn)

    Fakt: Zoenie funkcji monotonicznych jest funkcj monotoniczn

    Wniosek: Ukad zupeny zawiera co najmniej jedn funkcj, ktra nie jestmonotoniczna

    Funkcja Boolea f : {0, 1}n {0, 1} jest samosprzona wttf(x1, . . . , xn) = f(x1, . . . , xn)

    Fakt: Zoenie funkcji samosprzonych jest funkcj samosprzon

    Wniosek: Ukad zupeny zawiera co najmniej jedn funkcj, ktra nie jestsamosprzona

    27

  • Dla funkcji n argumentowej f, ktra nie jest samosprzona istnieje krotka(a1, . . . , an) {0, 1}n, na ktrej f nie jest sprzona, t.j.:

    f(a1, . . . , an) = f(a1, . . . , an)

    W klasie funkcji Boolea, ktre nie s samosprzone wyrniamy funkcjef ktre s sprzone w zerze, t.j.

    f(0, . . . , 0) = f(1, . . . , 1)

    f(a1, . . . , an) = f(a1, . . . , an)

    dla pewnego (a1, . . . , an)

    Twierdzenie 2.1 O warunkach na zupeno ukaduJeli ukad funkcji Boolea zawiera funkcj f1 niemonotoniczn i funkcj f2sprzon w zerze, ktra nie jest samosprzona, to ukad ten jest zupeny.

    Dowd:Pokaemy najpierw, e z funkcji f1(x1, . . . , xn) moemy skonstruowa funkcj NOT . Miano-wicie brak monotonicznoci oznacza istnienie takich dwch elementw w dziedzinie f1, e pouporzdkowaniu zmiennych wedug rosncych wartoci mamy:

    f1(0, . . . , 0, 1, . . . , 1, 1, . . . , 1) = 0f1(0, . . . , 0, 0, . . . , 0, 1, . . . , 1) = 1

    Podstawiajc x = 0, 1 sprawdzamy, e funkcja

    g(x) , f1(0, . . . , 0, x, . . . , x, 1, . . . , 1) = x

    Nastpnie pokaemy, e z funkcji f2 moemy przez waciwe podstawienie zmiennych x, y jakoargumentw funkcji otrzymamy jedn z funkcji AND, NOR, OR lub NAND.Mianowicie x podstawiamy w miejsce jedynek sekwencji (a1, . . . , an), dla ktrej nie jest spe-niony warunek sprzenia:

    f2(a1, . . . , an) = f2(a1, . . . , an)

    Zmienn y podstawiamy w miejsce zer tej sekwencji. Obydwa podstawienia si moliwe gdysekwencja ta nie moe skada si z samych zer lub samych jedynek konsekwencja warunkusprzenia w zerze. Porzdkujc argumenty wedug rosncych wartoci mamy:

    f2(0, . . . , 0, 1, . . . , 1) = f2(1, . . . , 1, 0, . . . , 0)

    h(x, y) , f2(y, . . . , y, x, . . . , x)

    h(0, 1) = h(1, 0)

    Poniewa h(0, 0) = f2(0, . . . , 0) = f2(1, . . . , 1) = h(1, 1). Rozwaajc dwie moliwe wartocidla h(0, 0) i rwnie dwie moliwoci dla h(0, 1) otrzymujemy nastpujce cztery moliwoci nafunkcj h :

    x y h(x,y) h(x,y) h(x,y) h(x,y)0 0 0 1 0 10 1 0 0 1 11 0 0 0 1 11 1 1 0 1 0

    Widzimy wic, e moemy z funkcji f2 otrzyma:

    AND dla h(0, 0) = 0, h(0, 1) = 0 wtedy otrzymane AND wraz z NOT (otrzymanym zf1) jest ukadem zupenym

    NOR dla h(0, 0) = 1, h(0, 1) = 0 wtedy otrzymane NOR tworzy ukad zupeny

    28

  • OR dla h(0, 0) = 0, h(0, 1) = 1 wtedy otrzymane OR wraz z NOT (otrzymanym zf1)jest ukadem zupenym

    NAND dla h(0, 0) = 1, h(0, 1) = 1 wtedy otrzymane NAND tworzy ukad zupeny

    Std f1 oraz f2 tworz ukad zupeny, bo z nich moemy otrzyma ukad zupeny.

    wiczenia:Stosujc twierdzenie o ukadach zupenych sprawd zupeno ukadu:

    1. AND i NOT

    2. OR i NOT

    3. AND, OR i NOT

    4. NAND

    5. NOR

    2.5 Wasnoci algebry Boolea

    Przemienno:x|y = y|x, x&y = y&x

    czno:x|(y|z) = (x|y)|z, x&(y&z) = (x&y)&z

    Rozdzielno koniunkcji wzgldem alternatywy:

    x&(y|z) = (x&y)|(x&z)

    Rozdzielno alternatywy wzgldem koniunkcji:

    x|(y&z) = (x|y)&(x|z)

    Wasnoci negacji:

    x = x, x|y = x&y, x&y = x|y

    Peno negacji:x|x = 1, x&x = 0

    Wasnoci zera:x|0 = x, x&0 = 0

    Wasnoci jedynki:x&1 = x, x|1 = 1

    29

  • wiczeniaUzasadnij rwnoci funkcji Boolea:

    1. x&y&z = z|x|y2. x|y|z = z&x&y3. x&(x|y)&y = 04. x|(x&y)|y = 1

    2.6 Mapa Karnaugh

    Eliminacja zmiennej i jej negacji w alternatywie koniunkcji:

    x&w|x&w = wbo

    x&w|x&w = (x|x)&w = 1&w = wgdzie w jest dowolnym wyraeniem boolowskim

    Eliminacja zmiennej i jej negacji w koniunkcji alternatyw:

    (x|w)&(x|w) = wbo

    (x|w)&(x|w) = (x&x)|w = 0|w = wgdzie w jest dowolnym wyraeniem boolowskim

    Eliminacja dwch zmiennych w koniunkcji alternatyw:

    (x|y|w)&(x|y|w)&(x|y|w)&(x|y|w) = w

    Eliminacja dwch zmiennych w alternatywie koniunkcji:

    x&y&w|x&y&w|x&y&w|x&y&w = wbo

    x&y&w|x&y&w|x&y&w|x&y&w = (x&y&w|x&y&w)|(x&y&w|x&y&w) == y&w|y&w = w

    wiczenia:Upro wyraenia boolowskie do wyraenia o:

    1. jednej zmiennej: x&y|y&x2. dwch zmiennych: x&y&z|x&z&y

    30

  • 3. jednej zmiennej: x&y&z|y&x&z|x&y&z|x&z&y4. jednej zmiennej: (x|y)&(y|x)5. dwch zmiennych: (x|y|z)&(x|z|y)6. jednej zmiennej: (x|y|z)&(y|x|z)&(x|y|z)&(x|z|y)

    2.7 Rachunek zda

    Przykady zda o wartoci logicznej prawda (1):

    1000 = 1000

    5 < 55

    17 = 7 + 10

    sze jest liczb parzyst

    1024 jest cakowit potg dwjki

    Przykady zda o wartoci logicznej fasz (0):

    1000 = 2000

    5 > 15

    17 = 2 + 51

    sze jest liczb nieparzyst

    1024 jest cakowit potg trjki

    Nastpujcym zdaniom nie mona przypisa wartoci logicznej:

    x = 2000

    x > y

    x = y + z

    2.7.1 Spjniki logiczne

    Spjnik Nazwa Spjnik w C Funkcja Boolea Funkcja w C

    negacja ! alternatywa | | koniunkcja && & & rwnowano == = implikacja

    alt. wyczna ^

    31

  • 2.7.2 Wyraenia logiczne

    Budowa wyrae logicznych:

    Stae logiczne: T F

    Zmienne logiczne:a b c . . . x y z

    Wyraenia atomowe: stae logiczne lub zmienne logiczne

    Negacja atomw:

    a b c . . .x y z T F

    Wyraenia zoone z wyrae prostszych w1, w2 :

    (w1)(w1) (w2)(w1) (w2)(w1) (w2)

    Jeli wyraenie w1 lub w2 jest atomem lub jego negacj, to pomijamynawiasy.

    Przykady wyrae logicznych:

    a, x y, (a b) (a b)

    Wyraenie logiczne w reprezentuje funkcj Boolea fw

    Niech wyraenia logiczne w1 i w2 bd zbudowane z tego samego zestawuzmiennych logicznych. Mwimy, e

    w1 i w2 s logicznie rwnowane, w1 w2, wtt okrelaj t samfunkcj Boolea:

    w1 w2 wtt fw1 = fw2 w1 implikuje w2, w1 = w2, wtt jedynki fw1 s jedynkami fw2 :

    w1 = w2 wtt fw1 fw2 wttfw1(a, b, . . . ) = 1 fw2(a, b, . . . ) = 1

    Jeli fw nie przyjmuje wartoci zero, to wyraenie w nazywa si tautologi

    Rwnowana denicja wyrae rwnowanych:

    w1 w2 wtt (w1) (w2) jest tautologi

    Rwnowana denicja implikacji logicznej:

    w1 = w2 wtt (w1) (w2) jest tautologi

    32

  • Wane tautologie:

    a aa a

    (a b) (a b)(a b) b a

    (a b) (a b)kontrapozycja: (a b) (b a)modus ponens: (a (a b)) b

    modus tollens: (a (b a)) bzaprzeczenie: (p F ) p

    przechodnio implikacji:[(a b) (b c)] (a c)

    Zadania:

    1. Wiemy, e zdanie a b jest prawdziwe. Co mona powiedzie o prawdzi-woci zdania:

    [a b (a b)] [((a b)) (a b)]

    2. Co moesz powiedzie o prawdziwoci zda a , x A, b , y B, c , y A jeli nastpujce implikacje s prawdziwe:

    Jeli x A oraz y B, to y AJeli x 6 A oraz y A, to y 6 B

    3. Sprawd czy nastpujce wyraenia logiczne s tautologiami:

    (a) (a b) (a c) (a (b c))(b) (a c) (b c) ((a b) c)(c) (a b) (a b)(d) (a (b c)) ((a b) c)(e) (a b) (a b)(f) (a b) (a b) (a b)(g) (a b) ((a b) b)(h) (a b) ((a b) (c c))(i) ((a b) c) (b (a c))

    Problemy:

    1. W pewnej wiosce ludzie dziel si na dwie grupy K i P . W grupie K sci, ktrzy zawsze kami, a w grupie P ci, ktrzy zawsze mwi prawd.Okrel przynaleno osb do tych grup, jeli:

    33

  • (a) spotykaj si osoby A,B i A powiada do B przynajmniej jeden znas jest kamc

    (b) spotykaj si osoby A,B i A powiada ja jestem kamc lub B niejest kamc

    (c) spotykaj si osoby A,B,C i A powiada wszyscy jestemy kamca-mi, za B na to tylko jeden z nas nie kamie

    (d) spotykaj si osoby A,B,C i A powiada panowie naleycie do tejsamej grupy co powie C jeli kto go zapyta czy A i B s w tejsamej grupie?

    2. W pewnej wiosce w Transylwanii mieszkaj osobnicy, ktrych mona zali-czy do jednej z czterech kategorii: (1) ludzie zdrowi, ktrzy zawsze mwiprawd; (2) ludzie chorzy, ktrzy zawsze kami; (3) wampiry zdrowe, kt-re zawsze kami; (4) wampiry chore, ktre zawsze mwi prawd.

    (a) Pewien mieszkaniec tej wioski powiada jestem albo czowiekiem albojestem zdrowy. Do jakiej kategorii naley ta osoba?

    (b) Inny mieszkaniec powiada nie jestem zdrowym czowiekiem. Kimon jest?

    (c) Jeszcze inny powiada jestem chorym czowiekiem. Czy naley ondo tej samej kategorii co poprzednik?

    (d) Tubylec na zadane przez turyst pytanie czy jeste chorym wampi-rem? odpowiedzia tak lub nie. Kim by ten tubylec?

    Przykad dowodu przez zaprzeczenieTwierdzenie 2.2 O pierwiastku z dwch2 jest liczb niewymiern.

    Dowd:Niech zdanie p ma posta:

    2 jest liczb niewymiern.

    Wtedy p oznacza, e dla pewnych liczb m,n N wzgldnie pierwszych mamy:2 =

    m

    n, m2 = 2n2

    Stdm jest podzielne przez dwa, a wicm2 jest podzielne przez cztery i std n jest te podzielne

    przez dwa. Co przeczy temu, e m i n s wzgldnie pierwsze.

    2.7.3 Wyraenia logiczne a zbiory

    34

  • wyraenie logiczne wasno zbiory

    a a a a a idempotentno A A = A A = A(a b) c a (b c) czno (A B) C = A (B C)(a b) c a (b c) (A B) C = A (B C)

    a b b a przemienno A B = B Aa b b a A B = B A

    a (b c) (a b) (a c) rozdzielczo A (B C) = (A B) (A C)a (b c) (a b) (a c) A (B C) = (A B) (A C)

    a a inwolucja A = A

    (a b) a b prawa A B = A B

    (a b) a b deMorgana A B = A Ba F a a F F identyczno A = A A = a T a a T T A U = A A U = U

    a (a b) a absorpcja A (A B) = Aa (a b) a A (A B) = A

    2.7.4 amigwka krla

    Krlewicz polubi t z trzech panien, ktra pierwsza rozwie zadanie opraco-wane przez krla. Krl powiedzia pannom, e w ssiedniej ciemnej komnacienaoy kolejno kadej z nich kapelusz koloru czerwonego lub zielonego. Gdy touczyni poinstruowa je, e maj podnie rk gdy zobacz przynajmniej jedenkapelusz koloru czerwonego, a nastpnie pomyle i odgadn jaki kapelusz ma-j na gowie. Wygra ta z panien, ktra pierwsza da poprawn odpowied. Powprowadzeniu panien zgromadzeni zobaczyli, e krl zaoy wszystkim pannomkapelusze koloru czerwonego. Po duszej chwili milczenia jedna z panien ogosiaz pewnoci siebie, e nosi kapelusz czerwony. Skd to wiedziaa?Rozwizanie logiczne

    Niech symbole A, B, C reprezentuj trzy panny

    Zamy, e zagadk rozwizaa panna A

    Okrelamy zdania logiczne:

    1. a1 , Panna A ma kapelusz czerwony.

    2. a2 , Panna A podniosa rk.

    3. a3 , Panna A okrelia kolor swojego kapelusza

    4. Analogicznie okrelamy zdania b1, b2, b3 dla panny B oraz c1, c2, c3dla panny C

    Gdy wszystkie panny podniosy rk, w ocenie sytuacji przez pann Anastpujce zdania s prawdziwe i ich prawdziwo moe by sprawdzonaprzez panny B i C:

    35

  • 1. a1 b2 c2 a1 b1 c12. a1 b1 c1 b3 c33. (b3 c3) (a1 b2 c2)4. (b3 c3) a1 b2 c25. b2 T6. c2 T7. (b3 c3) a1 F F a18. b3 c3 a1

    2.8 Rachunek predykatw i kwantykatorw

    1. Formy zdaniowe

    2. Kwantykatory

    2.8.1 Predykaty

    Forma zdaniowa (predykat) jednej zmiennej to wyraenie P (x), ktre popodstawieniu dowolnego a Dx staje si zdaniem logicznym

    Zbir Dx nazywamy dziedzin zmiennej x

    Jeli P (a) jest zdaniem prawdziwym, to mwimy, e a spenia P

    Zbir tych wszystkich a Dx, ktre speniaj P oznaczamy przez T (P ) inazywamy zbiorem speniania predykatu P

    Forma zdaniowa (predykat) wielu zmiennych P (x, y, . . . ) ma okrelonedziedziny Dx, Dy, . . . dla kadego parametru, a zbir T (P ) speniania Pjest relacj zawart w Dx Dy :

    T (P ) , {(a, b, . . . ) : a Dx, b Dy, . . . P (a, b, . . . ) jest speniony}T (P ) D , Dx Dy . . .

    Produkt kartezjaski D , Dx Dy . . . nazywamy dziedzin predykatuP

    Przykady:

    P (x) , x jest liczb parzyst,Dx , N, T (P ) to zbir liczb parzystych

    Q(x, y) , x2 + y2 = 25, Dx = Dy , N, T (Q) = {(3, 4), (4, 3)} Q(x, y) , P (x) Q(x, y), Dx = Dy , N, T (Q) = {(4, 3)}

    36

  • P1(x1, . . . , xn) , |x1|+ . . . |xn| 1, Dx1 = = Dxn = R, T (P1) =kula w normie pierwszej w Rn

    P2(x1, . . . , xn) , x21 + . . . x2n 1, Dx1 = = Dxn = R, T (P2) =

    kula w Rn

    P(x1, . . . , xn) , maxi |xi| 1, Dx1 = = Dxn = R, T (P) =kula w normie Czebyszewa w Rn

    Jeli predykaty P i Q maj t sam dziedzin, to:

    T ((P )) = T (P )T (P Q) = T (P ) T (Q)T (P Q) = T (P ) T (Q)T (P Q) = T (P ) T (Q)

    T (P Q) = (T (P ) T (Q)) (T (P ) T (Q))

    Mwimy, e z predykatu P wynika predykat Q wtt TP TQ. Oznaczamyten fakt przez P Q

    Mwimy, e predykat P jest rwnowany predykatowi Q wtt TP = TQ.Oznaczamy ten fakt przez P Q

    wiczenia:

    1. Zapisz predykat P, dla ktrego zbir speniania T (P ) jest:

    (a) kul o promieniu 5 i o rodku w punkcie (5,5, 55)(b) koem o promieniu 10 i o rodku w (1, 11)

    (c) kwadratem o bokach rwnolegych do osi ukadu, o powierzchni 4 io rodku w (5, 5)

    (d) kwadratem obrconym o 45 stopni wzgldem rodka poprzednio okre-lonego kwadratu

    (e) zbiorem wszystkich punktw na paszczynie o wsprzdnych cako-witych, ktre s wzgldnie pierwsze

    2. Znajd zbir speniania T (P ) dla nastpujcego predykatu P (x) :

    x2 + x+ 1 < 30

    1 3x 27 0 < x < 40 oraz x2 + 7 jest cakowit potg dwjki

    Zadania:

    1. Wyra P (x) , x jest wielokrotnoci 4 przy pomocy predykatu Q(x) ,x jest liczb parzyst

    37

  • 2. Niech A Dx bdzie dowolnym zbiorem w dziedzinie Dx. Zdeniuj pre-dykat P (x) taki, e T (P ) = A

    3. Niech A , {x N : x 18}, B , {x N : x 25, 2|x}.(a) Wypisz elementy zbiorw A B oraz B A(b) Okrel predykaty deniujce zbiory AB oraz B A

    4. Przypumy, e mamy logiczn implikacj P Q dla predykatw P iQ okrelonych w dziedzinie D. Co mona powiedzie o zbiorze spenianiaT ((P ) (Q))?

    Problemy:Jakie relacje musz zachodzi midzy zbiorami speniania T (P ) oraz T (Q) byprawd byy nastpujce implikacje:

    1. (P (x) Q(x)) P (x)2. (P (x) Q(x)) Q(x)3. (P (x) Q(x)) (P (x) Q(x))4. (P (x) Q(x)) (P (x) Q(x))

    2.8.2 Kwantykatory

    Kwantykator oglny x (czytaj dla kadego x) dotyczy predykatu jed-nej zmiennej P (x) lub wielu zmiennych P (x, y, . . . )

    Zmienna kwantykatora przyjmuje wartoci z dziedziny Dx lub z jejpodzbioru Z Dx

    Predykat P (x) jednej zmiennej otrzymujemy zdanie logiczne q :

    q , x Z,P (x)Zdanie q jest prawdziwe wtt Z T (P )

    Jeli Z = , to zdanie x Z,P (x) jest zawsze prawdziwe Przykady:

    x N, x2 > x 1x Z {0}, x2 > x 1x R, x2 2x 1

    Predykat P (x, y) dwch zmiennych otrzymujemy predykat Q(y) :

    Q(y) , x Z,P (x, y)Zdanie Q(b) dla x = b jest prawdziwe wtt

    Z {x Dx : P (x, b)}

    38

  • Przykady:

    x R, x2 + y 2x 1x R, sin(x y) 1

    Kwantykator egzystencjalny x (czytaj istnieje x) dotyczy predykatujednej zmiennej P (x) lub wielu zmiennych P (x, y, . . . )

    Zmienna kwantykatora przyjmuje wartoci z dziedziny Dx lub z jejpodzbioru Z Dx

    Predykat P (x) jednej zmiennej otrzymujemy zdanie logiczne q :

    q , x Z,P (x)Zdanie q jest prawdziwe wtt Z T (P ) 6=

    Przykady:

    x N, 2x > 1010000x R, x2 2x 1

    Predykat P (x, y) dwch zmiennych otrzymujemy predykat Q(y) :

    Q(y) , x Z,P (x, y)Zdanie Q(b) dla x = b jest prawdziwe wtt

    Z {x Dx : P (x, b)} 6=

    Przykady:

    x R, x2 + y 2x 1x R, sin(x y) >

    2/2

    Negacja :[x Z,P (x)] x Z,P (x)[x Z,P (x)] x Z,P (x)

    [x Z,P (x, y)] x Z,P (x, y)[x Z,P (x, y)] x Z,P (x, y)

    Negacja :[x Z,P (x)] x Z,P (x)[x Z,P (x)] x Z,P (x)

    [x Z,P (x, y)] x Z,P (x, y)[x Z,P (x, y)] x Z,P (x, y)

    39

  • Przykad denicja cigoci funkcji w punkcie x0 :

    P (x, x0) , > 0 > 0, |x x0| < |f(x) f(x0)| < P (x, x0) > 0 > 0, |x x0| < |f(x) f(x0)|

    Przemienno :x Zx, y Zy, P (x, y) y Zy, x Zx, P (x, y)

    x Zx, y Zy, P (x, y, z) y Zy, x Zx, P (x, y, z)

    Przemienno :x Zx, y Zy, P (x, y) y Zy, x Zx, P (x, y)

    x Zx, y Zy, P (x, y, z) y Zy, x Zx, P (x, y, z)

    Specjalizacja dla Z 6= :x Z,P (x) x Z,P (x)

    x Z,P (x, y) x Z,P (x, y)

    wiczenia:

    1. Zapisz w postaci kwantykatorowej nastpujce zdania:

    (a) Istniej wysocy mczyni

    (b) Tylko poboni zasuguj na zbawienie

    (c) Co si psuje w pastwie duskim

    (d) S rzeczy na ziemi i w niebie, ktre nie ni si nawet lozofom

    (e) adne prosi nie lata

    2. Okrel prawdziwo zda:

    (a) x N, x2 + x < 1010000(b) x N, (x2 = 2x) (x2 = 100)

    Zadania:

    1. Uzasadnij prawdziwo implikacji:

    [x, (P (x) Q(x))] [x, P (x)] [x,Q(x)]

    2. Podaj przykad predykatw P (x), Q(x), dla ktrych nastpujce implika-cje s faszywe:

    [x, (P (x) Q(x))] [x, P (x)] [x,Q(x)]xy, P (x, y) yx, P (x, y)xy, P (x, y) xy,P (x, y)

    40

  • Problemy:

    1. Niech Dx = {a, b, c.} Wyeliminuj kwantykatory z nastpujcych zda: x D,P (x) [x D,R(x)] [x D,S(x)]

    2. Zapisz w postaci kwantykatorowej nastpujce zdania:

    Istniej co najmniej dwa elementy x D, speniajce predykat P (x) Istniej co najwyej dwa elementy x D, speniajce predykat P (x) Istniej dokadnie dwa elementy x D, speniajce predykat P (x) Mona upiec szarlotk na wicej ni dwa sposoby

    Wasno P (n) jest prawdziwa dla wszystkich n N za wyjtkiemskoczonej liczby przypadkw

    2.9 Homomorzm algebr

    Homomorzm to odwzorowanie dziedziny jednej algebry w dziedzin dru-giej algebry zachowujce dziaania tych algebr

    Formalna denicja homomorzmu:

    Algebra oryginalna:

    A , (X,K; fi : Xni . X, i = 1, . . . ,K)

    Algebra homomorczna:

    B , (Y,K; f i : Y ni . Y, i = 1, . . . ,K)

    Homomorzm to odwzorowanie h : X Y speniajce warunki:

    h(fi(x1, . . . , xni)) = fi(h(x1), . . . , h(xni))

    dla dowolnych (x1, . . . , xni) D(fi), i = 1, . . . ,K. W algebrze homomorcznej B (przy homomormie h : X Y )dziedziny operacji s nadzbiorami obrazw dziedzin odpowiednichoperacji w algebrze A :

    h(D(fi)) D(f i), i = 1, . . . ,K Jeli homomorzm h : X Y jest odwzorowaniem rnowartocio-wym i na, to h1 nie musi by homomorzmem. Jeli h1 jesthomomorzmem, to h nazywamy izomorzmem algebr A oraz B.

    41

  • Jeli h jest homomorzmem rnowartociowym i na, to h1 : Y X jest homomorzmem wtt gdy dziedziny operacji w algebrze B sobrazem dziedzin odpowiednich operacji w algebrze A :

    D(f i) = h(D(fi)), i = 1, . . . ,K

    Jeli h jest homomorzmem rnowartociowym na oraz dla pew-nej operacji fi w algebrzeA istnieje element (y1, . . . , yni) D(f i), b-dcy obrazem elementu spoza dziedziny operacji fi, t.j. xi = h1(yi), i =1, . . . ,K oraz

    (y1, . . . , yni) D(f i), (x1, . . . , xni)) 6 D(fi),

    to rozszerzenie operacji f1 na element (x1, . . . , xni)

    fi(x1, . . . , xni) , h1(f i(y1, . . . , yni))

    okrela rozszerzenie algebry A izomorczne z algebr B.

    Przykad:

    A , (Z, 2;+, ) algebra liczb cakowitych z operacjami dodawaniai mnoenia

    B , ({0, 1}, 1;,&) algebra binarna z operacjami XOR i AND Odwzorowanie h : Z {0, 1} okrelone nastpujco: h(x) = 0 wtt xjest liczb parzyst (x P)

    Odwzorowanie h jest homomorzmem algebry A w algebr B, t.j.:

    x, y Z, h(x+ y) = h(x) h(y)x, y Z, h(x y) = h(x)&h(y)

    Dowd homomorzmu w powyszym przykadzieRozwamy cztery nastpujce przypadki dla operacji dodawania:

    x P, y P (x+ y) Px P, y P h(x) = 0, h(y) = 0, h(x + y) = 0 = 0 0 = h(x) h(y)

    x P, y 6 P (x+ y) 6 Px P, y 6 P h(x) = 0, h(y) = 1, h(x + y) = 1 = 0 1 = h(x) h(y)

    x 6 P, y P (x+ y) 6 Px 6 P, y P h(x) = 1, h(y) = 0, h(x + y) = 1 = 1 0 = h(x) h(y)

    x 6 P, y 6 P (x+ y) Px 6 P, y 6 P h(x) = 1, h(y) = 1, h(x + y) = 0 = 1 1 = h(x) h(y)

    42

  • Rozwamy te same przypadki tym razem dla operacji mnoenia:

    x P, y P (x y) Px P, y P h(x) = 0, h(y) = 0, h(x y) = 0 = 0&0 = h(x)&h(y)

    x P, y 6 P (x y) Px P, y 6 P h(x) = 0, h(y) = 1, h(x y) = 0 = 0&1 = h(x)&h(y)

    x 6 P, y P (x y) Px 6 P, y P h(x) = 1, h(y) = 0, h(x y) = 0 = 1&0 = h(x)&h(y)

    x 6 P, y 6 P (x y) 6 Px 6 P, y 6 P h(x) = 1, h(y) = 1, h(x+ y) = 1 = 1&1 = h(x) h(y)

    Zadanie:Poka, e rozszerzenie w powyszym przykadzie algebry A o operacj odejmo-wania liczb cakowitych , a algebr B o operacj odejmowania modulo dwa ,to odwzorowanie h jest te homomorzmem algebry A w algebr B.

    2.10 Rachunek reszt

    Iloraz q z dzielenia n Z przez p N oraz reszta r z tego dzieleniaspeniaj warunki:

    n = q p+ r, 0 r < p

    Powyszy rozkad jest jednoznaczny, tzn. istnieje dokadnie jedna takapara (q, r) speniajca te warunki.Dowd:Jeli n = q1 p+ r1 = q2 p + r2, to

    |(q1 q2)| p = |r2 r1|

    Poniewa p dzieli |r1 r2|, a |r1 r2| < p, to r1 = r2.Std

    q1 p = q2 p q1 = q2

    I dlatego (q1, r1) = (q2, r2).

    Okrelamy funkcj modp : Z Zp , {0, 1, . . . , p 1}(czytaj: modulo p), p N:

    n Z mod p(n) , reszta z dzielenia n przez p

    Podstawowy zwizek resztowy, p > 0:

    n =n

    p

    p+ modp(n)

    43

  • Operacje modulo +p,p, p : Zp Zp Zpx+p y , modp(x+ y), xp y , modp(x y), x p y , modp(x y),

    gdzie +, to dodawanie i mnoenie liczb cakowitych Jednoargumentowa operacja negacji modulo p : Zp Zp

    px , 0p x = p x, x Zp

    Odejmowanie modulo przez dodawanie modulo i negacj modulo:

    xp y = x+p (py)

    Wasnoci modp dla dowolnych x, y Z :

    modp(x + y) = modp(modp(x) + modp(y))modp(x + y) = modp(x) +p modp(y)modp(x) = modp( mod p(x)) = modp(p modp(x))modp(x) = p mod p(x)modp(x y) = modp(modp(x) modp(y))modp(x y) = modp(x)p modp(y)modp(x y) = modp(modp(x) modp(y))modp(x y) = modp(x) p modp(y)

    Twierdzenie: Funkcja mod p okrela homomorzm algebry (Z, 3;+,, ) walgebr (Zp, 3;+p,p, p)

    Jeli p jest liczb pierwsz to dla dowolnego a Zp{0}, rwnanie apx =1 ma dokadnie jedno rozwizanie w zbiorze Zp. Oznaczamy je jako a1.

    Dowd twierdzenia o elemencie odwrotnym w ZpNiech f(x) , a p x, x Zp bdzie funkcj argumentu x. Zauwamy, e f : Zp Zp i f jestfunkcj rnowartociow bo:

    a p x = a p y p|a(x y) p|a p|(x y)

    Poniewa 0 < a < p, to p 6 |a, a wic p|(xy).Moemy zaoy, e x y.Wtedy 0 (xy) < pi p|(x y) tylko wtedy gdy x y = 0, t.j. gdy x = y.Skoro funkcja f jest okrelona na skoczonym zbiorze i jest rnowartociowa, wic jest teodwzorowaniem Zp na Zp.

    Dlatego f1(1) jest zbiorem jednoelementowym, t.j. istnieje dokadnie jeden element x Zpdla ktrego f(x) = 1, t.j. a p x = 1.

    Twierdzenie 2.3 o arytmetyce w INNiech IN , {n Z : 2N1 n < 2N1} Z, p , 2N . Wtedy

    Na zbiorze IN operacje arytmetyczne +,, staj si funkcjami czcio-wymi

    44

  • Odwzorowanie modp ograniczone do zbioru IN jest rnowartociowe ima posta dla x IN :

    modp(x) ={

    x gdy 0 x (p/2) 1x+ p gdy p/2 x 1

    Odwzorowanie odwrotne mod1p : Zp IN ma posta dla dowolnegoy Zp :

    mod1p (y) ={

    y gdy 0 y (p/2) 1y p gdy (p/2) y p 1

    Twierdzenie 2.4 o homomormie algebrOdwzorowanie mod p jest homomorzmem rnowartociowymna algebryAN ,(IN , 3;+,, ) na algebr BN , (Zp, 3;+p,p, p), t.j. dla dowolnych x, y IN ,z dziedziny operacji po lewej stronie mamy:

    modp(x+ y) = modp(x) +p modp(y)

    modp(x y) = modp(x) p modp(y)modp(x y) = modp(x) p modp(y)

    Wniosek 2.1 o homomorcznym rozszerzeniuOkrelamy homomorczne rozszerzenie arytmetycznych operacji +,, na IN :

    x+y , mod1p (modp(x) +p modp(y))

    xy , mod1p (modp(x)p modp(y))xy , mod1p (modp(x) p modp(y))

    Wtedy modp jest izomorzmem algebry BN i rozszerzonej algebry AN .

    2.11 Arytmetyka cyfrowa w staym przecinku

    N dugo rejestru w ALU (w praktyce N = 8, 16, 32, 64)

    Arytmetyka cyfrowa liczb cakowitych standardowo dotyczy dziaa +,, na zbiorze IN

    Dziaania te s wykonywane poprzez arytmetyk modulo +p,p, p w Zp Funkcja modp okrela rnowartociowy homomorzm obu algebr

    45

  • Liczba n ze zbioru IN jest kodowana na dokadnie N bitach z uyciemodwzorowania modp, p = 2N :

    u(n) ,

    N bitw modp(n)

    u(n) nazywa si kodem uzupenieniowym do dwch (ang. 2s complementto two)

    Przykady dla N = 8: I8 = [128, 127], p = 28 = 256

    u(100) =

    8 bitw mod256(100)=

    8 bitw100 = 01100100

    u(100) =8 bitw

    mod256(100)=8 bitw

    100 + 256=8 bitw156 = 10011100

    u(128) =8 bitw

    mod256(128)=8 bitw

    128 + 256=8 bitw128 = 10000000

    u(1) =8 bitw

    mod256(1)=8 bitw

    1 + 256=8 bitw255 = 11111111

    Ustawianie domylnego staego przecinka na cyfrze s = 0, . . . , N 1 : Dziedzina liczbowa przecinka na cyfrze s :

    IsN , IN 2s , {x Q : n IN , x = n 2s}

    Homomorzm algebryAsN = (IsN , 3;+,, ) z algebr BN = (Zp, 3;+p,p, p)okrela nastpujce odwzorowanie modsp :

    modsp(x) , modp(x 2s), x IsN

    Nazwa kodu u(n) wynika z charakteru odejmowania manualnego od 2N liczbyz przedziau [1, 2N1] w systemie dwjkowym, np. dla N = 8, n = 100 mamy:

    256 = 1 0 0 0 0 0 0 0 0256 = 0 1 1 1 1 1 2 0 0

    100 = 0 1 1 0 0 1 0 0u(100) = 1 0 0 1 1 1 0 0

    Reguy manualne dla u(n): W zapisie dwjkowym liczby n na N bitach niezmieniaj zer na najmodszych pozycjach i nie zmieniaj najmodszej jedynki.Pozostae cyfry zmie na przeciwne.

    2.12 Arytmetyka cyfrowa w zmiennym przecinku

    46

  • Arytmetyka w zmiennym przecinku stosuje reprezentacj opart na kon-cepcji cechy c(x), mantysy m(x) i znaku liczby s(x) dla x R.

    W standardzie IEEE 754 Floating Point Numbers (w skrcie IEEE 754)da si by mantysa bya w przedziale [1, 2) :

    x = (1)s(x)m(x)2c(x), s(x) {0, 1}, m(x) [1, 2), c(x) Z

    Jeli x 6= 0, to powysza reprezentacja zmiennoprzecinkowa jest jedno-znaczna, bo R {0} mona podzieli na przeskalowane przez 2k, k Z,wersje przedziau [1, 2) :

    R {0} = (,1] (1, 0) (0, 1) [1,)

    (,1] = (8,4] (4,2] (2,1] =k=0

    (2k+1,2k]

    (1,0) =(1,1

    2

    ](12,1

    4

    ] =

    k=1

    (2k+1,2k]

    (0, 1) = [14,12

    )[12, 1)=

    k=1

    [2k, 2k+1)

    [1,) = [1, 2) [2, 4) [4, 8) =k=0

    [2k, 2k+1)

    Jeli x [2k, 2k+1), k Z, to s(x) = 0, c(x) = k,m(x) = x/2k

    Jeli x (2k+1,2k], k Z, to s(x) = 1, c(x) = k,m(x) = x/2k

    W praktyce mamy ograniczon liczb bitw nc na pole cechy i nm bitwna pole mantysy

    W IEEE 754 cech c(x) kodujemy jako liczb c(x) + b, gdzie b jest staymprzesuniciem dla cechy

    W IEEE 754 struktura sowa zmiennoprzecinkowego ma posta:

    precyzja s(x) c(x) + b m(x) boat 1 [31] 8 [30-23] 23 [22-00] 127double 1 [63] 11 [62-52] 52 [51-00] 1023

    gdzie pole bitowe opisano w postaci: dugo [zakres pozycji bitowych] i takdla precyzji pojedynczej (oat) mamy nc = 8, nm = 23, a dla podwjnej(double) nc = 11, nm = 52

    W IEEE 754 wiodc jedynk mantysy pomija si

    47

  • W IEEE 754 dopuszczalny kod cechy c+ b [1, 2nc 2], t.j. kody zoonez samych zer i z samych jedynek zarezerwowano dla innych celw. Stdzakres dopuszczalnych cech wynosi:

    c [1 b, 2nc 2 b]

    W IEEE 754 warto zapisu liczby x w przypadku mantysy znormalizo-wanej wynosi:

    x = (1)s m 2c, m [1, 2 2nm ], c [1 b, 2nc 2 b]x [22nc2b(2 2nm),2b+1] [2b+1, 22nc2b(2 2nm)]

    dla nc = 8, nm = 23, b = 127,

    x [2127(2 223),2126] [2126, 2127(2 223)]dla nc = 11, nm = 52, b = 1023,

    x [21023(2 252),21022] [21022, 21023(2 252)]

    W IEEE 754 oprcz mantysy znormalizowanej dopuszczono dla wyrnio-nej wartoci cechy nie znormalizowany zapis uamka m w miejscu manty-sy, z wag jeden dla najstarszej pozycji (bez domylnej jedynki), t.j. dlac+ b = 0 warto zapisu liczby x wynosi:

    x = (1)s m 2b, m [2nm+1, 2 2nm+1]x [2b+1(1 2nm),2bnm+1] [2bnm+1, 2b+1(1 2nm)]

    dla nm = 23, b = 127,

    x [2126(1 223),2149] [2149, 2126(1 223)]dla nm = 52, b = 1023,

    x [21022(1 252),21074] [21074, 21022(1 252)]

    Reprezentacja zera: pole cechy i mantysy wypenione zerami, pole znakudowolne

    Liczby rzeczywiste R(N,nc) = R(1+nc+nm, nc) reprezentowane w zmien-nym przecinku w IEEE 754 s postaci zdeniowanej powyej dla mantysyznormalizowanej i nie znormalizowanej:

    R(N,nc) , Rz(N,nc) Rn(N,nc) {0},N = 1 + nc + nm, b = 2nc1 1

    Rz(N,nc) , {x : s, k, c N, x = (1)s m 2c, s {0, 1},m [1, 2 2nm ], m = 1 + k2nm ,c [1 b, 2nc 2 b]}

    Rn(N,nc) , {x : s, k N, x = (1)s m 2b, s {0, 1},m [2nm+1, 2 2nm+1], m = k2nm+1}

    48

  • Zakresy dla float:

    R(32, 8) , Rz(32, 8) Rn(32, 8) {0},nc = 8, nm = 23, b = 127

    Rz(32, 8) , {x : s, k, c N, x = (1)s m 2c, s {0, 1},m [1, 2 223], m = 1 + k223, c [126, 127]}

    Rn(32, 8) , {x : s, k N, x = (1)s m 2b, s {0, 1},m [222, 2 222], m = k222}

    Zakresy dla double:

    R(64, 11) , Rz(64, 11) Rn(64, 11) {0},nm = 52, nc = 11, b = 1023

    Rz(64, 11) , {x : s, k, c N, x = (1)s m 2c, s {0, 1},m [1, 2 252], m = 1 + k252, c [1022, 1023]}

    Rn(64, 11) , {x : s, k N, x = (1)s m 2b, s {0, 1},m [251, 2 251], m = k251}

    Reprezentacja nieskoczonoci: same jedynki w polu cechy, same zera wpolu mantysy, pole znaku rwne zero dla + i rwne jeden dla

    Kategoria NaN (ang. Not a Number)

    Kategoria QNaN (ang. Quiet Not a Number) obsuguje argumentynie zdeniowane i jest kodowana w polu cechy przez same jedynki, aw polu mantysy ma jedynk na pozycji najbardziej znaczcej

    Kategoria SNaN (ang. Signalling Not a Number) obsuguje argu-menty nieprawidowe i jest kodowana w polu cechy przez same je-dynki, a w polu mantysy ma zero na pozycji najbardziej znaczcej iprzynajmniej jedn jedynk na pozostaych pozycjach

    Operacje na argumentach specjalnych:

    operacja z argumentem NaN ma wynik NaN

    operacje z argumentem :operacja wynikx/ 0

    x 6= 0 x/0 +

    operacja wynik0/ 0 NaN NaN/ NaN 0 NaN

    49

  • 2.12.1 Wzorce bitowe w IEEE 754

    kod(c) kod(m)s e f x

    0 0 . . . 0 0 . . . 0 +0

    0 0 . . . 0

    0 . . . 01...

    1 . . . 1

    +bez norm.0, f 2b+1

    0

    0 . . . 01...

    1 . . . 10

    X . . .X+z norm.1, f 2eb

    0 1 . . . 1 0 . . . 0 +

    0 1 . . . 1

    0 . . . 01...

    01 . . . 1

    SNaN

    0 1 . . . 1

    10 . . . 0...

    1 . . . 1

    QNaN

    kod(c) kod(m)s e f x

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

    1 0 . . . 0

    0 . . . 01...

    1 . . . 1

    bez norm.0, f 2b+1

    1

    0 . . . 01...

    1 . . . 10

    X . . . Xz norm.1, f 2eb

    1 1 . . . 1 0 . . . 0

    1 1 . . . 1

    0 . . . 01...

    01 . . . 1

    SNaN

    1 1 . . . 1

    10 . . . 0...

    1 . . . 1

    QNaN

    3 Schematy rekurencyjne

    Pojcie schematu rekurencyjnego, t.j. rekursji:

    Rekursja to specyczny schemat konstrukcji zbiorw typu rekuren-cyjnego

    Rekursja skada si z dwch krokw:

    1. krok bazowy: okrela obiekty bazowe2. krok rekurencyjny: konstruuje elementy zoone z elementw prost-

    szych

    Przykady rekursji:

    rekurencyjne cigi liczb, np. cig Fibonacciego:

    c0 = 1, c1 = 1, cn+1 , cn + cn1, n N

    rekurencyjne cigi zbiorw, np. obrazy fraktalne takie jak trjktSierpiskiego, czy zbir Cantora C :

    C = limnCn

    C1 = [0, 1], Cn+1 = f1(Cn) f2(Cn)f1(x) , x/3, f2(x) , (x+ 2)/3

    50

  • poprawne wyraenia jzyka programowania ze zbioru W , np.

    a, b, c, . . . , x, y, z W bazowe wyraeniaw W (w) W wyraenie nawiasowe

    w1, w2 W w1 + w2 W , w1 w2 W , . . . inne operacje

    drzewa matematyczne:

    Pojedynczy wze w tworzy drzewo Tw

    Jeli T1, . . . , Tk s drzewami, a r jest wzem, to struktura zoona zwza r jako korzenia z referencjami na drzewa T1, . . . , Tk jest nowymdrzewem T

    Uyteczno rekursji:

    Funkcje jzyka programowania mog realizowa rekursje, t.j. proce-dury rekurencyjne, np. n! oblicza nastpujca funkcja jzyka C:int silnia(int n) { if (n == 0) return 1; else return nsilnia(n 1); }

    Jeli zbir Z jest budowany rekurencyjnie ze zbioru bazowego Z0, toprawdziwo zdania typu x Z,P (x) dowodzi si technik oglnejindukcji matematycznej zoon z dwch krokw:

    1. podstawa indukcji:dowodzimy prawdziwoci P (x) dla wszystkich x Z0

    2. krok indukcyjny: jeli element x jest zbudowany rekurencyjnie zelementw x1, . . . , xk, to dowodzimy prawdziwoci implikacji

    [P (x1) P (xk)] P (x)

    Przykad 3.1 PalindromyRozwamy palindromy nad alfabetem , t.j. sowa, ktre czytane od lewej i odprawej maj t sam posta. Niech sowo puste E i pojedynczy symbol bd tepalindromem. Pokaemy, e zbir P0 wszystkich palindromw mona zbudowanastpujcym schematem rekurencyjnym:

    1. krok bazowy:E P , , P

    2. krok rekurencyjny: , x P x P

    Zauwamy, e elementy bazowe ze zbioru s palindromami z denicji. Jeli x jestpalindromem, to konstrukcja x daje rwnie palindrom. Std mamy P P0.Jeli wyraenie x jest palindromem, t.j. x P0, to mona je zbudowa z E lubz symbolu rodkowego (przypadki parzystej lub nieparzystej dugoci) stosujckrok rekurencyjny. Std rwnie zachodzi przeciwna inkluzja P0 P .

    51

  • Przykad 3.2 Zbalansowane wyraenia nawiasoweZbalansowane wyraenia nawiasowe ze zbioru B budujemy tylko z symboli na-wiasw ( oraz ) stosujc nastpujcy schemat rekurencyjny:

    1. krok bazowy: E B symbol pusty jest wyraeniem nawiasowym2. krok rekurencyjny 1: x B (x) B3. krok rekurencyjny 2: x, y B xy B

    Niech w B, w = w1 . . . wn, wi {(, )}. Okrelamy cig liczb Li (Pi) jako liczblewych (prawych) nawiasw na pozycjach 1, . . . , i.W praktyce czsto wykorzystujemy nastpujc wasno zbalansowanych wy-rae nawiasowych:

    Li Pi, i = 1, . . . n 1, Ln = Pn (1)Oznaczmy przez B0 zbir wyrae nawiasowych speniajcych powysz wa-sno.Pokaemy najpierw, e B B0.Wkroku rekurencyjnym pierwszym w wyraeniu(x) mamy na pozycji i-tej, 2 i n 1 :

    Li = 1 + Li1(x) 1 + Pi1(x) = 1 + Pi > Pigdzie Lj(x) (Pj(x)) dotyczy wartoci analizowanych tylko dla czci x.Dla i = 1 : L1 = 1 > P1 = 0. Za dla i = n :

    Ln = 1 + Ln1(x) = 1 + Pn1(x) = Pn

    Pokazalimy wic, e (x) spenia warunek (1), t.j. (x) B0.Podobnie pokazujemy, e jeli x, y B speniaj warunek (1), to wyraenie xyrwnie spenia warunek (1). Dlatego B B0.Przypumy teraz, e jakie wyraenie w B0, t.j. spenia warunek (1). Musimypokaza, e da si ono zbudowa stosujc kroki rekurencyjne 1 oraz 2.Wiemy, e jest to prawda dla najkrtszego wyraenia x = (), bo budujemy je zE stosujc krok 1. Przypumy, e |x| > 2 i e wyraenia x B0 krtsze od x,t.j. |x| < |x| pokazalimy konstrukcj opart na krokach rekurencyjnych 1 i 2,t.j. x B. Wtedy x mamy dwa przypadki:

    1. x jest postaci x = (x), x B0 i wtedy moemy zastosowa krok 1 dox B,

    2. moemy x podzieli na czci x = x1x2 . . . xk, z ktrych kada speniawarunek (1), t.j. xi B0. Punkty podziau dostajemy tam gdzie Li = Pi.Wtedy kada z tych czci (jako krtsza od x) naley do B i stosujcrekurencyjny krok 2 k 1 razy wnioskujemy, e rwnie x B.

    Pokazalimy wic inkluzj przeciwn B0 B. W efekcie B = B0.

    52

  • 3.1 Wiee Hanoi

    Problem Wiee Hanoi:Zabawa w wiee Hanoi wymaga pewnej liczby n piercieni o rnych promieniachzewntrznych R1 > > Rn, i staym promieniu wewntrznym r1 = = rn =r < Rn, duo mniejszym ni rozmiar kadego piercienia, ale na tyle duymby piercienie mogy by naoone przez swoje wewntrzne otwory na szkieletwiey zoonej z pionowego prta i nieruchomej podstawy. Dysponujemy trzematakimi szkieletami o numerach 1, 2, 3. Pocztkowo wszystkie piercienie tworzwie numer 1 w ten sposb, e najwikszy ley na podstawie szkieletu 1 i kolejnemniejsze piercienie spoczywaj na wikszych. Zadanie polega na przeniesieniuwszystkich piercieni, jeden po drugim, z wiey numer 1 na wie numer 3 zwykorzystaniem wiey 2 w ten sposb by nigdy wikszy piercie nie by pooonyna piercieniu mniejszym.Oznaczmy polecenie przeniesienia krka z wiey i na wie j przez i j;Wtedy rozwizanie dla n = 1 ma trywialn posta: 1 3;Dla n = 2 wykorzystamy wie 2 : 1 2; 1 3; 2 3;Dla n = 3 mamy 7 polece:

    1 3; 1 2; 3 2; 1 3; 2 1; 2 3; 1 3;

    Schemat rekurencyjny HanoiTowers(i, j, n) jest procedur, ktra ma wygene-rowa sekwencj polece przenoszca n piercieni z wiey i na wie j.

    1. krok bazowy dla n = 1:

    (a) i j;(b) zakoczenie;

    2. krok rekurencyjny dla n > 1:

    (a) niech k bdzie numerem trzeciej wiey rnej od i oraz j

    (b) HanoiTowers(i, k, n 1);(c) i j;(d) HanoiTowers(k, j, n 1);(e) zakoczenie;

    lad procedury uwzgldnia nastpujce fakty:

    Kade wykonanie procedury oznacza utworzenie nowej kopii parametrwprocedury (tu dla i, j, n) i zmiennych pomocniczych (tu tylko dla k)

    W kopii parametrw wpisujemy wartoci argumentw aktualnego wywo-ania procedury, a w kopii lokalnych zmiennych wartoci aktualne dla tegowykonania procedury

    53

  • Zakoczenie procedury skutkuje usuniciem kopii parametrw i lokalnychzmiennych

    Podobne zarzdzanie pamici dotyczy aktualnego kroku jaki jest wyko-nywany w ramach acucha wywoa procedur

    Zmienna pomocnicza t oznacza dugo aktywnego acucha wywoa pro-cedur jeszcze nie zakoczonych

    Zawsze mamy w pamici t kopii parametrw i zmiennych lokalnych (u nasi1, j1, n1, k1; . . . ; it, jt, nt, kt)

    Aktualnie wykonywana procedura korzysta jako ostatnia w acuchu wy-woa procedur z t-tej kopii parametrw i zmiennych lokalnych

    Ponisza tabela opisuje lad wywoania HonoiTowers(1, 3, 2)

    aktualnekroki t i1, j1, n1, k1; . . . ; it, jt, nt, kt polecenie2.(a) 1 1, 3, 2, 22.(b); 1.(a) 2 1, 3, 2, 2; 1, 2, 1, 1 22.(b); 1.(b) 1 1, 3, 2, 22.(c) 1 1, 3, 2, 2 1 32.(d); 1.(a) 2 1, 3, 2, 2; 2, 3, 1, 2 32.(d); 1.(b) 1 1, 3, 2, 12.(e) 0

    Zadanie: Zapisz procedur rekurencyjn silnia(n) i utwrz tabel ladu wyko-nania silnia(4).Kolejna tabela opisuje lad wywoania HonoiTowers(1, 3, 3)

    kroki t i1, j1, n1, k1; . . . ; it, jt, nt, kt polecenie2.(a) 1 1, 3, 3, 22.(b); 2.(a) 2 1, 3, 3, 2; 1, 2, 2, 32.(b); 2.(b); 1.(a) 3 1, 3, 3, 2; 1, 2, 2, 3; 1, 3, 1, 1 32.(b); 2.(b); 1.(b) 2 1, 3, 3, 2; 1, 2, 2, 32.(b); 2.(c) 2 1, 3, 3, 2; 1, 2, 2, 3 1 22.(b); 2.(d); 1.(a) 3 1, 3, 3, 2; 1, 2, 2, 3; 3, 2, 1, 3 22.(b); 2.(d); 1.(b) 2 1, 3, 3, 2; 1, 2, 2, 3;2.(b); 2.(e) 1 1, 3, 3, 22.(c) 1 1, 3, 3, 2 1 32.(d); 2.(a) 2 1, 3, 3, 2; 2, 3, 2, 12.(d); 2.(b); 1.(a) 3 1, 3, 3, 2; 2, 3, 2, 1; 2, 1, 1, 2 12.(d); 2.(b); 1.(b) 2 1, 3, 3, 2; 2, 3, 2, 12.(d); 2.(c) 2 1, 3, 3, 2; 2, 3, 2, 1 2 32.(d); 2.(d); 1.(a) 3 1, 3, 3, 2; 2, 3, 2, 1; 1, 3, 1, 1 32.(d); 2.(d); 1.(b) 2 1, 3, 3, 2; 2, 3, 2, 12.(d); 2.(e) 1 1, 3, 3, 22.(e) 0

    54

  • Wasno 3.1 O liczbie polece w problemie Wiee HanoiNiech p(n) bdzie liczb polece generowanych przez procedurHanoiTowers(i, j, n).Wtedy

    1. p(1) = 1

    2. p(n) = p(n 1) + 1 + p(n 1)3. p(n) = 2n 1

    Zadanie: Sprawd suszno powyszych wasnoci funkcji p(n).

    3.2 Konwersja wyraenia arytmetycznego na ONP

    Notacja arytmetyczna (NA), np.: a+ b, a+ b c, (a+ b) c Notacja Polska (NP), np.: +ab,+a bc, + abc Odwrotna Notacja Polska (ONP), np.: ab+, abc +, ab+ c Przykady rwnowanych wyrae:

    NA NP ONPa/b /ab ab/a+ b c + abc ab+ ca/b c /abc ab/ca b/c / abc ab c/a b/c a/bc abc/(a b)/c / abc ab c/a+ b (c d/a) +a b c/da abcda/ +(c/d+ a) (b d/a) + /cda b/da cd/a+ bda/

    Obserwacje:

    Kolejno wystpowania zmiennych w NA, NP i ONP jest taka sama

    Kolejno wykonywania operacji w NA uwzgldnia pooenie nawiasw,priorytety i reguy czenia operacji o jednakowych priorytetach

    Kolejno wystpowania operacji w ONP jest taka sama jak kolejno wy-konywania operacji w NA

    Tabela priorytetw i regu czenia:

    poziom operacje reguy czenia2 / od prawej1 + od lewej

    55

  • Symbol operacji w NA maj poziom zagniedenia okrelony przez liczbL P, gdzie L (P) jest liczb lewych (prawych) nawiasw wyst-pujcych przed dan operacj, np. w wyraeniu (c/d+ a) (b (d+ c)/a)kolejne operacje /+ +/maj poziomy zagniedenia rwne odpowied-nio 1, 1, 0, 1, 2, 1

    Przesanki do algorytmu NA ONP : Zakadamy sekwencyjny przegld symboli wyraenia w typu NA, kolejnood lewej do prawej

    Pojawienie si symbolu zmiennej oznacza jej kopiowanie na wyjcie u

    Zmiana porzdku symbolu operacji o i jej drugiego argumentu wymagazapamitania o w jakiej strukturze danych s, np. dla w postaci a/(b+ac),operacja / zapamitywana jest w s

    Drugi argument operacji omoe by te zoonym wyraeniem i dlatego dos mog by dopisywane kolejne operacje, ktre bd usuwane z s wczeniejni symbol o

    Struktura danych ma wasno stosu, ktry dziaa wedug zasady ostatnizapisany pierwszy skasowany (ang. LIFO Last In First Out)

    Poniewa nawiasy, priorytety i zasady cznoci ustalaj kolejno opera-cji, to powinnimy doczy dodatkowe reguy obsugi stosu s :

    1. Pojawienie si prawego nawiasu ) oznacza wycofanie z s na wyjcieu wszystkich operacji z tego poziomu zagniedenia

    2. Pojawienie si lewego nawiasu ( oznacza jego automatyczne zapa-mitanie w s, co pozwoli na atw identykacj wszystkich symbolioperacji zapisanych w s z aktualnego poziomu zagniedenia

    3. Pojawienie si operacji onext o niszym priorytecie ni ostatnia ope-racja otop na stosie s oznacza wycofanie otop z s na wyjcie u

    4. Pojawienie si operacji onext o tym samym priorytecie co ostatniaoperacja otop na stosie s, ale o regule czenia od lewej oznacza wy-cofanie otop z s na wyjcie u

    Algorytm 3.1 konwersji NA ONP Wejcie: poprawne wyraenie typu NA

    x = x1x2 . . . xn, xi {a, . . . , z, (, ),+,, , /}

    Dla uproszczenia zapisu algorytmu zakadamy, e x1 = (, xn =)

    Wyjcie: wyraenie typu ONP

    y = y1y2 . . . yn, yi {a, . . . , z,+,, , /}

    56

  • Metoda:

    1. Przygotuj wskaniki biecej pozycji:

    i dla wejcia w j 0 dla wyjcia u t 0 dla stosu s

    2. Dla i = 1, . . . , n :

    (a) Przypadek xi {a, . . . , z} : j j + 1; yj xi;(b) Przypadek xi = (: t t+ 1; st xi(c) Przypadek xi =) :

    i. pki st 6= ( wykonuj: j j + 1; yj st; t t 1;ii. t t 1

    (d) Przypadek xi {+,, , /}i. pki st {+,, , /} oraz (prty(st) > prty(xi) lub prty(st) =prty(xi) i obowizuje regua czenia od lewej dla operacji sti xi) wykonuj:

    j j + 1; yj st; t t 1;ii. Wprowad xi na stos: t t+ 1; st xi

    lad algorytmu NA ONP na wyraeniu ((c/d+ a) (b d+ c)/d)i xi krok t s1 . . . st j yj

    1. 0 01 ( 2.(b) 1 (2 ( 2.(b) 2 ((3 c 2.(a) 1 c4 / 2.(d)ii. 3 ((/5 d 2.(a) 2 d6 + 2.(d)i ii. 3 ((+ 3 /7 a 2.(a) 4 a8 ) 2.(c)i ii. 1 ( 5 +9 2.(d)ii. 2 (10 ( 2.(b) 3 ((11 b 2.(a) 6 b12 2.(d)ii. 4 ((13 d 2.(a) 7 d14 + 2.(d)i ii. 4 ((+ 8 15 c 2.(a) 9 c16 ) 2.(c)i ii. 2 ( 10 +17 / 2.(d)ii. 3 (/18 d 2.(a) 11 d19 ) 2.(c)i ii. 0 12 13 /

    57

  • Wynik konwersji ((c/d+ a) (b d+ c)/d) na ONP:y1 . . . y13 = cd/a+ bd c+ d/

    3.3 Generowanie kodu maszynowego wyraenia arytme-

    tycznego

    Prosty model maszyny (PMM):

    pami MEM zoona zN swmaszynowych o adresach 0, 1, 2, . . . , N1, np. N = 220 :

    MEM [0],MEM [1], . . . ,MEM [N 1] akumulator RA, tj. wyrniony rejestr, w ktrym przed wykonaniemoperacji arytmetycznej znajduje si pierwszy argument, a po jej wy-konaniu wynik operacji

    rejestr wierzchoka (ang. top) stosu programu RT jednostka centralna z repertuarem instrukcji:

    Instrukcje z adresowaniem bezporedniminstrukcja efekt dziaaniaLOAD X RA MEM [@X ]SAVE X MEM [@X ] RAADD X RA RA +MEM [@X ]SUB X RA RA MEM [@X ]MUL X RA RA MEM [@X ]DIV X RA RA/MEM [@X ]

    gdzie @X oznacza adres zmiennej X. Instrukcje stosowe

    instrukcja efekt dziaaniaPUSH MEM [RT ] RA; RT RT + 1POP RT RT 1; RA MEM [RT ]POP2 RT RT 1; RA MEM [RT 1];

    MEM [RT 1]MEM [RT ]ADD *T RT RT 1; RA RA +MEM [RT ]SUB *T RT RT 1; RA RA MEM [RT ]MUL *T RT RT 1; RA RA MEM [RT ]DIV *T RT RT 1; RA RA/MEM [RT ]

    Przykad kodu dla PMM umieszczajcego na stosie programuwartowyraenia (A+B) C D :kod wyniki ONPLOAD A A w RAADD B AB+ w RAMUL C AB+C* w RASUB D AB+C*D- w RAPUSH AB+C*D- na stosie

    58

  • Przykad o bardziej zoonej interakcji ze stosem:NA A C/(B C +D), ONP ACBC D + /kod wyniki ONPLOAD B B w RASUB C BC- w RAADD D BC-D+ w RAPUSH BC-D+ na stosieLOAD C C w RADIV *T CBC-D+/ w RAPUSH CBC-D+/ na stosieLOAD A A w RAMUL *T ACBC-D+/* w RAPUSH ACBC-D+/* na stosie

    Algorytm 3.2 ONP CODE s stos zmiennych aktualizowany z ONP y = y1y2 . . . yJ

    $ dodatkowy symbolem oznaczajcy aktualny wierzchoek stosu

    1. Przygotuj wskaniki biecej pozycji:

    j dla ONP t 0 dla stosu s

    2. Dla j = 1, . . . , J :

    (a) Przypadek yj jest symbolem zmiennej: t t+ 1; st yj(b) Przypadek yj jest symbolem operacji:

    v1 st1; v2 st; t t 1; st $;i. Przypadek v1, v2 zawieraj symbole zmiennych: generuj kod

    LOAD v1; yj v2; PUSH;

    gdzie vi jest symbolem zapisanym w vi, i = 1, 2, a yj jesttekstem ADD gdy yi = +, SUB gdy yi = , MUL gdyyi = , DIV gdy yi = /

    ii. Przypadek v1 jest symbolem zmiennej, v2 = $ : generuj kod

    LOAD v1; yj T ; PUSH;iii. Przypadek v2 jest symbolem zmiennej, v1 = $ generuj kod

    POP ; yj v2; PUSH;

    iv. Przypadek v1 = $, v2 = $ : generuj kod

    POP2 ; yj T ; PUSH;

    59

  • 3. W kodzie usu wszystkie pary kolejnych instrukcji postaci PUSH;POP;

    4. W kodzie usu wszystkie pary kolejnych INSTRUKCJI postaci PUSH; POP2; o ile kolejna instrukcji jest postaci ADD *T lub postaciMUL *T

    lad algorytmu ONP CODE na wyraeniu CD/A+BD C +D/

    j yj krok t s1 . . . st generowany kod1. 0

    1 C 2.(a) 1 C2 D 2.(a) 2 CD3 / 2.(b)i. 1 $ LOAD C; DIV D; PUSH;4 A 2.(a) 2 $A5 + 2.(b)iii. 1 $ POP ; ADD A; PUSH;6 B 2.(a) 2 $B7 D 2.(a) 3 $BD8 2.(b)i. 2 $$ LOAD B; SUB D; PUSH;9 C 2.(a) 2 $$C10 + 2.(b)iii. 2 $$ POP ; ADD C; PUSH;11 D 2.(a) 3 $$D12 / 2.(b)iii. 2 $$ POP ; DIV D; PUSH;13 2.(b)iv. 1 $ POP2 ; MUL *T; PUSH;

    Po kroku 3 usuwajcym pary PUSH; POP oraz kroku 4 usuwajcym paryPUSH; POP2 (przed MUL) wygenerowany kod ma posta:LOAD CDIV DADD APUSHLOAD BSUB DADD CDIV DMUL *TPUSH

    Zauwamy, e w tym przykadzie automatycznie wygenerowany kod jest opty-malny w sensie iloci instrukcji.

    3.4 Klasyczna indukcja matematyczna

    60

  • Oglny schemat indukcji matematycznej:Jeli zbir Z jest budowany rekurencyjnie ze zbioru bazowego Z0, to praw-dziwo zdania typu x Z,P (x) dowodzi si technik oglnej indukcjimatematycznej zoon z dwch krokw:

    1. podstawa indukcji:dowodzimy prawdziwoci P (x) dla wszystkich x Z0

    2. krok indukcyjny: jeli element x jest zbudowany rekurencyjnie z ele-mentw x1, . . . , xk, to dowodzimy prawdziwoci implikacji

    [P (x1) P (xk)] P (x)

    Klasyczna indukcja matematyczna przyjmuje nastpujce zaoenia:

    Z = N {0}, Z0 = {0} n > 0 n = (n1)+1 zasada budowy wikszych liczb z mniejszychpozwala na konstrukcj:

    n = 0 + 1 + + 1

    Prawdziwo zdania n n0, P (n) uzasadniamy dowodzc prawdzi-woci:

    1. podstawy indukcji dla n0 Z : P (n0) jest zdaniem prawdziwym2. kroku indukcyjnego dla n > n0 w postaci oglnej:

    [n0 k < n, P (k)] P (n)

    3. lub kroku indukcyjnego dla n > n0 w postaci szczeglnej:

    P (n 1) P (n)

    3.4.1 Indukcja matematyczna wybrane przykady

    Przykad 3.3 Wzr na sum kwadratw liczb parzystychDowodzimy prawdziwoci rwnoci:

    nk=1

    (2k)2 =23n(n+ 1)(2n+ 1)

    Niech L(n) lewa strona rwnoci, P(n) prawa strona rwnoci, predykatP (n) :

    P (n) , L(n) = P(n)Podstawa indukcji n0 = 1 :

    L(1) = (2 1)2 = 22 = 4, P(1) = 231 2 3 = 4, L(1) = P(1) P (1)

    61

  • Krok indukcyjny dla n > 1.Zamy P (n 1), t.j. L(n 1) = P(n 1). Wtedy

    L(n) = L(n 1) + (2n)2 = P(n 1) + (2n)2 = 23(n 1)n(2n 1) + 4n2 =

    23n[(n 1)(2n 1) + 6n] = 2

    3n(n+ 1)(2n+ 1) = P(n)

    W takim razie z zaoenia P (n 1) wynika L(n) = P(n), t.j. P (n). Zauwamyprzy okazji, e w kroku indukcyjnym wnioskujemy z pierwszej linii mamy:

    n(n+ 1)(2n+ 1) =32L(n) = (n 1)n(2n 1) + 6n2

    A to jest krok indukcyjny do dowodu tego, e kady wyraz cigu n(n+1)(2n+1)jest podzielny przez 6.

    Zadania:Poka metod indukcji matematycznej prawdziwo nastpujcych rwnoci czst-kowych sum szeregw liczbowych:

    1.n

    k=1(3k 2) = n(3n 1)/22.n

    k=1 k(k + 1) = n(n+ 1)(n+ 2)/3

    3.n

    k=1 k(k 1) = (n 1)n(n+ 1)/34.n

    k=1 k2 = n(n+ 1)(2n+ 1)/6

    5.n

    k=1(1)kk2 = (1)nn(n+ 1)/26.n

    k=1 k(k + 1)(k + 2) = n(n+ 1)(n+ 2)(n+ 3)/4

    7.n

    k=1 k(k 1)(k 2) = (n 2)(n 1)n(n+ 1)/48.n

    k=1 2/(k + 2)k = 3/2 (2n+ 3)/(n+ 1)(n+ 2)9.n

    k=1 1/(2k 1)(2k + 1) = n/(2n+ 1)10.

    nk=1 1/(3k 2)(3k + 1) = n/(3n+ 1)

    11.n1

    k=0 1/(n+ k)(n+ k + 1) = 1/2n

    12.n1

    k=0 1/(n 2k)(n 2k + 2) = n/(4 n2) dla nieparzystych n > 0Zadania:Poka metod indukcji matematycznej prawdziwo nastpujcych wasnoci:

    1. Oglne prawo de Morgana:

    nk=1

    Ak =n

    k=1

    Ak

    62

  • 2. 2n > n2 dla n > 4

    3.n

    k=1 1/k >

    n dla n > 1

    4. 4|(3n + 1) dla nieparzystych n > 05. 5|(2 4n + 3 9n) dla n 06. 7|(2n+2 + 32n+1) dla n 07. 13|(42n+1 + 3n+2) dla n 08. Jeli c0 = c1 = 1, c2 = 3 oraz dla n > 2 cn = 3cn1 3cn2 + cn3, to

    cn = n2 n+ 1 dla n 0Przykad 3.4 Istnienie acucha zwycistw w turniejuRozwamy turnieje sportowe , w ktrych kady gracz spotyka si z kadym ikada gra dwch przeciwnikw koczy si zwycistwem jednego z nich. acuchzwycistw dugoci k, dotyczy k graczy G1, . . . , Gk i ma miejsce gdy gracz G1pokona gracza G2, G2 wygra z G3, . . . , Gk1 okaza si lepszy od Gk. Pokae-my, e w kadym takim turnieju z n uczestnikami mona zawsze zidentykowaacuch zwycistw dugoci n.Baza indukcji dla n0 = 3. Niech gracze A, B, C uczestnicz w turnieju. JeliA wygra z B to zapisujemy ten fakt jako A B. Po jego zakoczeniu mamydwie moliwoci:

    1. Jeden z graczy pokona pozostaych. Np. A B,A C i wtedy gdyB C, to acuch zwycistw ma posta A B C, w przeciwnymrazie A C B.

    2. Kady z graczy ma po jednym zwycistwie i jednej porace. Np. B A iA C i wtedy acuch zwycistw to B A C.

    Krok indukcyjny dla n > 3. Po zakoczeniu turnieju wybierzmy dowolnego gra-cza X, ktry ma przynajmniej jedno zwycistwo i przynajmniej jedn porak.Taki gracz istnieje, bo jego brak oznaczaoby, e w turnieju s tylko dwie ka-tegorie graczy ci, ktrzy wygrali wszystkie spotkania oraz ci, ktrzy odnielisame poraki. Ale w kadej z tych kategorii moe znale si co najwyej jedengracz. Wtedy liczba wszystkich graczy n musiaaby wynosi co najwyej dwchgraczy, wbrew zaoeniu, e n > 3.Gracz X okrela dwie kategorie graczy:

    1. W zbiorze W znajduj si gracze, z ktrymi X wygra2. W zbiorze P s ci przeciwnicy, z ktrymi X przegra

    Poniewa liczno n1 = |P| jest mniejsza ni n, to z zaoenia indukcyjnegoistnieje w zbiorze P acuch zwycistw:

    P1 . . . Pn1

    63

  • Podobnie moemy znale acuch zwycistw w zbiorze W :W1 . . .Wn2

    gdzie n2 = n 1 n1.Budowa acucha zwycistw dla wszystkich graczy jest teraz prosta. Ma onbowiem nastpujc posta:

    P1 . . . Pn1 X W1 . . .Wn2

    Przykad 3.5 Liczba obszarw okrelonych przez n prostych na paszczynieMwimy, e proste p1, . . . , pn s w pooeniu oglnym, gdy kada para pi, pjma punkt przecicia, ale adna trjka prostych nie przecina si w jednym punk-cie. Pokaemy, e liczba obszarw L(n), na ktre dzieli paszczyzn zestaw nprostych bdcych w pooeniu oglnym wynosi:

    L(n) = 1 +n(n+ 1)

    2

    Baza indukcji dla n0 = 2. Poniewa prosta p2 dzieli na dwie czci kad zppaszczyzn okrelonych przez prost p1, to dwie prost dziel paszczyzn nacztery obszary i wzr na L(n) jest prawdziwy dla n = 2, bo L(2) = 1 + 3 = 4.Krok indukcyjny dla n > 2.Zamy, e proste p1, . . . , pn1 dziel paszczyzn na L(n1) obszarw. Dodat-kowa prosta pn przecina proste