Professional Documents
Culture Documents
Wadysaw Skarbek
Pastwowa Wysza Szkoa Informatyki i Zarzdzania
Padziernik 2004 Stycze 2005
Spis treci
1 Zbiory
1.1 Zbiory a typy danych . . . . . . . . . . . . .
1.2 Elementy i podzbiory . . . . . . . . . . . . .
1.3 Deniowanie zbioru notacja . . . . . . . .
1.4 Paradoks Russela . . . . . . . . . . . . . . .
1.5 Operacje mnogociowe . . . . . . . . . . . .
1.6 Arytmetyczne typy danych . . . . . . . . .
1.7 Zbir potgowy a kombinacje i permutacje .
1.8 Produkt kartezjaski . . . . . . . . . . . . .
1.9 Relacje . . . . . . . . . . . . . . . . . . . . .
1.10 Funkcje . . . . . . . . . . . . . . . . . . . .
1.11 Zoony typ danych a produkt kartezjaski
1.12 Generalizacja typw danych . . . . . . . . .
1.13 Atrybuty i cechy . . . . . . . . . . . . . . .
1.14 Tabela relacyjna . . . . . . . . . . . . . . .
1.15 Cigi i macierze . . . . . . . . . . . . . . . .
1.16 Diagramy relacyjne w UML . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
4
5
6
7
7
9
10
11
13
15
16
17
18
19
20
2 Algebry
2.1 Intuicje informacyjne algebry . . .
2.2 Denicja algebry oglnej . . . . . .
2.2.1 Algebry a klasy obiektw .
2.2.2 Diagramy klas w UML . . .
2.3 Algebra Boolea . . . . . . . . . . .
2.4 Ukady zupene funkcji Boolea . .
2.5 Wasnoci algebry Boolea . . . . .
2.6 Mapa Karnaugh . . . . . . . . . .
2.7 Rachunek zda . . . . . . . . . . .
2.7.1 Spjniki logiczne . . . . . .
2.7.2 Wyraenia logiczne . . . . .
2.7.3 Wyraenia logiczne a zbiory
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
21
22
22
23
23
23
27
29
30
31
31
32
34
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
35
36
36
38
41
43
45
46
50
3 Schematy rekurencyjne
3.1 Wiee Hanoi . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Konwersja wyraenia arytmetycznego na ONP . . . . . . .
3.3 Generowanie kodu maszynowego wyraenia arytmetycznego
3.4 Klasyczna indukcja matematyczna . . . . . . . . . . . . . .
3.4.1 Indukcja matematyczna wybrane przykady . . . .
3.4.2 Obliczanie sum metod rnic . . . . . . . . . . . . .
3.5 Rwnania rekurencyjne . . . . . . . . . . . . . . . . . . . .
3.6 Zliczanie obiektw kombinatorycznych . . . . . . . . . . . .
3.6.1 Wspczynniki dwumienne . . . . . . . . . . . . . .
3.6.2 Wasnoci liczbowe zbiorw i funkcji . . . . . . . . .
3.6.3 Zasada wczania i wyczania . . . . . . . . . . . .
3.6.4 Podziay . . . . . . . . . . . . . . . . . . . . . . . . .
3.6.5 Zbiory z powtrzeniami . . . . . . . . . . . . . . . .
3.6.6 Zliczanie drzew binarnych . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
50
53
55
58
60
61
65
66
72
72
75
75
77
77
78
4 Kongruencje
4.1 Podzielno liczb cakowitych . . . . . . . . . . . . .
4.1.1 Kombinacje liniowe dwch liczb cakowitych .
4.1.2 Algorytm Euklidesa dla NWP . . . . . . . . .
4.1.3 Rozszerzony algorytm Euklidesa dla NWP . .
4.1.4 Przykad rozlewanie pynw . . . . . . . . .
4.1.5 Liczby pierwsze wprowadzenie . . . . . . .
4.1.6 Faktoryzacja na liczby pierwsze . . . . . . . .
4.1.7 Liczby pierwsze sito Eratostenesa . . . . . .
4.1.8 Liczby Mersena . . . . . . . . . . . . . . . . .
4.1.9 Liczby Fermata . . . . . . . . . . . . . . . . .
4.2 Algebra reszt . . . . . . . . . . . . . . . . . . . . . .
4.2.1 Rwnania w resztach . . . . . . . . . . . . . .
4.2.2 Chiskie twierdzenie o resztach . . . . . . . .
4.2.3 Twierdzenia Fermata o resztach . . . . . . .
4.2.4 Funkcja Eulera . . . . . . . . . . . . . . . . .
4.2.5 Twierdzenie Eulera o resztach . . . . . . . . .
4.2.6 Szyfrowanie algorytm RSA . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
80
81
84
85
86
88
90
91
93
93
94
95
98
99
101
102
103
104
2.8
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Przedmowa
Matematyka dyskretna w ujciu tego wykadu ma na celu wprowadzenie koncepcji matematycznych lecych u podstaw takich obszarw wiedzy informatycznej
jak jzyki i techniki programowania, ukady logiczne i arytmetyczne maszyn
cyfrowych oraz algorytmy szyfrowania danych.
Zaczynamy od pojcia zbioru i szeregu pochodnych poj mnogociowych, ktre
cile wi si z koncepcj typu danych, atrybutu obiektu w systemie informacyjnym, tabeli w relacyjnej bazie danych oraz instancji obiektu danego typu.
Kolejnym prezentowanym obszarem s algebry i ich zwizek z projektowaniem
jednostek arytmetycznych i logicznych w maszynach cyfrowych, z koncepcj
klasy obiektw i algebraicznym modelem programu komputerowego.
Rozdzia powicony schematom rekurencyjnym omawia indukcyjne techniki
deniowania obiektw matematycznych. Obejmuje on szereg przykadw zastosowania koncepcji rekursji w przyrostowym deniowaniu zoonych struktur
danych i algorytmw dziaajcych na nich.
Wykad zamyka dyskusja zastosowa rachunku reszt w kryptograi. Przedstawiono wybrane algorytmy szyfrowania danych wraz z ich teoretycznymi podstawami.
Zbiory
Zbir jest pojciem pierwotnym
ten typ tak ma
1.1
Intuicje informatyczne:
Ksika to zoony typ danych
Konkretny egzemplarz Pana Tadeusza w ksigozbiorze to instancja
typu Ksika
3
1.2
Elementy i podzbiory
przynaleno, np.:
x X x jest elementem zbioru X
y
/ X y nie jest elementem zbioru X
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
zbir pusty
{, . . . , } wyliczenie elementw zbioru, np.:
A = {1, 2, 3, 4, 5, 6} zbir skada si z liczb cakowitych od 1 do 6
Q , {x : x =
p
q
wiczenia
1. Zapisz wasno denicyjn zbioru liczb pierwszych.
2. Czy kada liczba rzeczywista o skoczonym dziesitnym zapisie pozycyjnym jest liczb wymiern ?
3. Podaj przykad liczby wymiernej, ktrej nie mona zapisa skoczon liczb cyfr dziesitnych.
Zadania
1. Podaj przykad liczby wymiernej, ktra w zapisie dziesitnym ma skoczon liczb cyfr, a w zapisie dwjkowym nie ma skoczonego zapisu.
2. Dla liczby rzeczywistej x = 0, b1 , b2 , . . . podaj cig liczb wymiernych zbieny do x.
1.4
Paradoks Russela
2. Czy S
/S?
Paradoks:
1. Jeli S S, to S
/S
2. Jeli S
/ S, to S S
1.5
Operacje mnogociowe
A B iloczyn zbiorw A i B
A B rnica zbiorw A i B
n
[
Ai , A1 An
n
\
Ai , A1 An
i=1
iloczyn n zbiorw:
i=1
Zadania
Niech A , U A. Uzasadnij nastpujce wasnoci operacji mnogociowych:
1. przemienno: A B = B A, A B = B A
2. 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
Typ arytmetyczny w jzyku programowania okrela liczbowy zbir moliwych wartoci (instancji) zmiennych deniowanych w programie
Przykad z jzyka C: deklaracja
int k;
mwi,e zmienna k ma wartoci typu cakowitego
Uwagi:
Zmienna cakowita w realizacji komputerowej ma skoczony zbir
wartoci
7
wiczenia
Uzasadnij dla n N nastpujce wasnoci:
1. In ( In+1
8
2. In+ ( In+1
+
3. In+ ( In+1
Zadania
Poka dla dowolnego k N :
S
1. Z = n=k In
S
2. N = {0} n=k In+
Problem
Uzasadnij, e kada liczba rzeczywista x 6= 0 da si zapisa jednoznacznie w
notacji naukowej:
x = (1)s(x) m(x)2c(x)
gdzie s(x) {0, 1} bit znaku, m(x) 12 , 1 mantysa, c(x) Z cecha
liczby x.
1.7
Jeli k 6= k , to Uk Uk =
Pn
Sn
2U = k=0 Uk oraz k=0 ck,n = 2n
wiczenia
Oblicz 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)!
Problem
Niech 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
3. A B
4. B A
5. C D
Zadania
Niech A = [0, 1], B = [1/4, 3/4]
1. Podaj interpretacj zbiorw A2 oraz A3
2. Wyznacz pole zbioru A2 B 2
3. Wyznacz objto zbioru A3 B 3
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 dla
pary elementw (a, b).
2. Niech A, B, C, D U. Podaj warunek dostateczny i konieczny na to by
(A B) (C D) = (A C) (B D)
1.9
Relacje
Intuicja: Relacja modeluje wspwystpowanie dwch lub wicej elementw w zwizkach o dowolnym charakterze
Przykady relacji:
R1 , {(x, y) : x jest ojcem y}
Denicje:
Relacja binarna jest zwrotna wtt aRa dla wszystkich a DR
(d) R7 , {(B, A), (C, A), (D, A), (D, C), (C, B), (B, D)}
4. Wyznacz relacje Ri1 , i = 1, . . . , 7, tj. relacje odwrotne do relacji R1 , . . . , 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 relacja
R jest relacj rwnowanoci ?
4. Ile rnych klas rwnowanoci ma nastpujca relacja liczb cakowitych
przy ustalonym m Z :
xRy wtt m dzieli x y
Problemy
1
1. Udowodnij: DR1 = DR
1.10
Funkcje
Problemy
1.11
1.12
1. Opisz zbir instancji typu danych, ktry specjalizuje T1 (operacja odwrotna 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
Zadania
Model 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
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 atrybutu 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 nastpujc
szczegln 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 opisa
tzw. 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
Abacki
Babacki
Imi
Karol
Jan
Waga [kg]
55,4
47,6
Wzrost [cm]
155
134
2. Zaprojektuj tabel relacyjn reprezentujc list ocen z Matematyki Dyskretnej dla dwch kolokwiw i egzaminu pisemnego. Zapenij jeden wiersz
tej tabeli oczekiwanymi przez siebie danymi
Zadania
1. Czy tabela relacyjna moe zawiera dwa rne wiersze o tej samej zawartoci ?
2. Tabele w bazach danych mog mie niektre pozycje typu brak danych.
Jak zmodykowa denicj atrybutu, by obejmowaa przypadki pozycji
nie zdeniowanych ?
1.15
Cigi i macierze
c0
c1
t
[c0 , c1 , c2 , c3 ] ,
c2
c3
(c) macierzy kwadratowej
c0,0
c1,0
c1,1
c2,1
c0,1
c1,1
c1,2
c2,2
c1,3
c2,3
1.16
wiczenia
Narysuj diagram relacyjny dla:
1. roli Nauczyciel uczy matematyk jeli nauczyciel jest typu Pracownik, a
matematyka 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
szef
datatype
Kampania Reklamowa
kieruje
0..*
Aggregation
datatype
Komponent
1..*
datatype
Reklama
Composition
Generalization
datatype
Reklama TV
datatype
Reklama prasowa
Algebry
Pojcie algebry:
1. Dziedzina D algebry, np. zbir liczb rzeczywistych, t.j. D = R
2. Operacje O algebry, np. dodawanie, odejmowanie, mnoenie i dzielenie w zbiorze liczb rzeczywistych, t.j. O = {+, , , /}
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 osiowych wzgldem tej samej osi ?
Zadania
1. Uzasadnij, e zoenie dwch obrotw jest obrotem
2. Uzasadnij, e zoenie dwch izometrii jest izometri
2.1
2.2
A , (X, K; fi : X ni 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
2.3
Algebra Boolea
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 funkcja
f 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 N OR bdzie okrelona wzorem:
NOR(x, y) , | , x|y
Sprawd, e x = x|x.
4. Czym si rni operacja skadania funkcji mnocych liczby cakowite od
operacji mnoenia liczb cakowitych?
24
Zadania
Poka, 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 elemencie dziedziny, a w pozostaych warto 0.
x&y&z
x&y&z
x&y&z
x&y&z
=1
=1
=1
=1
wtt
wtt
wtt
wtt
x = 1, y
x = 0, y
x = 0, y
x = 0, y
= 1, z
= 1, z
= 0, z
= 0, z
=1
=1
=1
=0
2. Jaka jest posta wyraenia Boolea zoonego tylko z funkcji NOT oraz
AND, 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 elementach
ze 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)}
4. Poka, e kada funkcja bitowa f o trzech argumentach da si przedstawi jako zoenie funkcji NOT, AND, OR w tzw. dyzjunkcyjnej postaci
normalnej:
f (x, y, z) = OR(a,b,c):f (a,b,c)=1fa,b,c (x, y, z)
gdzie ORI W (i) oznacza wyraenie czce operacj OR wartoci wyraenia W (i) otrzymane dla kadego i I.
25
5. Zapisz i uzasadnij uoglnienie dyzjunkcyjnej postaci normalnej dla dowolnej funkcji bitowej o n argumentach, n > 1
6. Zapisz posta dyzjunkcyjn normaln dla funkcji Boolea f zadanej tabel:
x
0
0
0
0
1
1
1
1
y
0
0
1
1
0
0
1
1
z
0
1
0
1
0
1
0
1
f(x,y,z)
1
0
1
0
1
0
1
0
7. Poka,e nastpujce funkcje bitowe maj warto 0 tylko w jednym elemencie dziedziny, a w pozostaych warto 1.
x|y|z
x|y|z
x|y|z
x|y|z
=0
=0
=0
=0
wtt
wtt
wtt
wtt
x = 0, y
x = 1, y
x = 1, y
x = 1, y
= 0, z
= 0, z
= 1, z
= 1, z
=0
=0
=0
=1
8. Jaka jest posta wyraenia Boolea zoonego tylko z funkcji NOT oraz
OR, 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 f a,b,c . Poka, e funkcja g przyjmuje warto 0 tylko w elementach
ze zbioru A, gdzie:
(a) g(x, y, z) = f 0,0,0 (x, y, z)&f 1,1,1 (x, y, z), A = {(0, 0, 0), (1, 1, 1)}
(b) g(x, y, z) = f 1,0,0 (x, y, z)&f 0,1,0 (x, y, z)&f 0,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 przedstawi jako zoenie funkcji NOT, OR i AND w tzw. koniunkcyjnej postaci
normalnej:
f (x, y, z) = AND(a,b,c):f (a,b,c)=1f a,b,c (x, y, z)
gdzie ANDI W (i) oznacza wyraenie czce operacj AND wartoci wyraenia W (i) otrzymane dla kadego i I.
26
11. Zapisz i uzasadnij uoglnienie koniunkcyjnej postaci normalnej dla dowolnej funkcji bitowej o n argumentach, n > 1
12. Zapisz posta koniunkcyjn normaln dla funkcji Boolea f zadan powysz tabel.
2.4
Pokaemy najpierw, e z funkcji f1 (x1 , . . . , xn ) moemy skonstruowa funkcj N OT . Mianowicie brak monotonicznoci oznacza istnienie takich dwch elementw w dziedzinie f1 , e po
uporzdkowaniu zmiennych wedug rosncych wartoci mamy:
f1 (0, . . . , 0, 1, . . . , 1, 1, . . . , 1) = 0
f1 (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 jako
argumentw funkcji otrzymamy jedn z funkcji AND, NOR, OR lub NAND.
Mianowicie x podstawiamy w miejsce jedynek sekwencji (a1 , . . . , an ), dla ktrej nie jest speniony warunek sprzenia:
f2 (a1 , . . . , an ) = f2 (a1 , . . . , an )
Zmienn y podstawiamy w miejsce zer tej sekwencji. Obydwa podstawienia si moliwe gdy
sekwencja ta nie moe skada si z samych zer lub samych jedynek konsekwencja warunku
sprzenia 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 wartoci
dla h(0, 0) i rwnie dwie moliwoci dla h(0, 1) otrzymujemy nastpujce cztery moliwoci na
funkcj h :
x
0
0
1
1
y
0
1
0
1
h(x,y)
0
0
0
1
h(x,y)
1
0
0
0
h(x,y)
0
1
1
1
h(x,y)
1
1
1
0
28
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
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
wiczenia
Uzasadnij rwnoci funkcji Boolea:
1. x&y&z = z|x|y
2. x|y|z = z&x&y
3. x&(x|y)&y = 0
4. x|(x&y)|y = 1
2.6
Mapa Karnaugh
2.7
Rachunek zda
Spjniki logiczne
Spjnik
Nazwa
negacja
alternatywa
koniunkcja
rwnowano
implikacja
alt. wyczna
Spjnik w C
Funkcja Boolea
Funkcja w C
!
k
&&
==
|
&
=
|
&
31
2.7.2
Wyraenia logiczne
Wane tautologie:
a a
a a
(a b) (a b)
(a b) b a
(a b) (a b)
kontrapozycja: (a b) (b a)
modus ponens: (a (a b)) b
(b) (a c) (b c) ((a b) c)
(c) (a b) (a b)
(g) (a b) ((a b) b)
Problemy:
1. W pewnej wiosce ludzie dziel si na dwie grupy K i P. W grupie K s
ci, ktrzy zawsze kami, a w grupie P ci, ktrzy zawsze mwi prawd.
Okrel przynaleno osb do tych grup, jeli:
33
2=
m
, m2 = 2n2
n
Std m jest podzielne przez dwa, a wic m2 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
34
wyraenie logiczne
aa aa a
(a b) c a (b c)
(a b) c a (b c)
ab ba
ab ba
a (b c) (a b) (a c)
a (b c) (a b) (a c)
a a
(a b) a b
(a b) a b
aF a aF F
aT a aT T
a (a b) a
a (a b) a
2.7.4
wasno
idempotentno
czno
przemienno
rozdzielczo
inwolucja
prawa
deMorgana
identyczno
absorpcja
zbiory
AA =AA =A
(A B) C = A (B C)
(A B) C = A (B C)
AB =BA
AB =BA
A (B C) = (A B) (A C)
A (B C) = (A B) (A C)
A=A
AB =AB
AB =AB
A=A A =
AU =A AU =U
A (A B) = A
A (A B) = A
amigwka krla
Krlewicz polubi t z trzech panien, ktra pierwsza rozwie zadanie opracowane przez krla. Krl powiedzia pannom, e w ssiedniej ciemnej komnacie
naoy kolejno kadej z nich kapelusz koloru czerwonego lub zielonego. Gdy to
uczyni poinstruowa je, e maj podnie rk gdy zobacz przynajmniej jeden
kapelusz koloru czerwonego, a nastpnie pomyle i odgadn jaki kapelusz maj na gowie. Wygra ta z panien, ktra pierwsza da poprawn odpowied. Po
wprowadzeniu panien zgromadzeni zobaczyli, e krl zaoy wszystkim pannom
kapelusze koloru czerwonego. Po duszej chwili milczenia jedna z panien ogosia
z 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 , c3
dla panny C
Gdy wszystkie panny podniosy rk, w ocenie sytuacji przez pann A
nastpujce zdania s prawdziwe i ich prawdziwo moe by sprawdzona
przez panny B i C:
35
1. a1 b2 c2 a1 b1 c1
2. a1 b1 c1 b3 c3
3. (b3 c3 ) (a1 b2 c2 )
4. (b3 c3 ) a1 b2 c2
5. b2 T
6. c2 T
7. (b3 c3 ) a1 F F a1
8. b3 c3 a1
2.8
1. Formy zdaniowe
2. Kwantykatory
2.8.1
Predykaty
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 . Oznaczamy
ten 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)
Zadania:
1. Wyra P (x) , x jest wielokrotnoci 4 przy pomocy predykatu Q(x) ,
x jest liczb parzyst
37
Problemy:
Jakie relacje musz zachodzi midzy zbiorami speniania T (P ) oraz T (Q) by
prawd 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 jednej zmiennej P (x) lub wielu zmiennych P (x, y, . . . )
Zmienna kwantykatora przyjmuje wartoci z dziedziny Dx lub z jej
podzbioru 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 1
x Z {0}, x2 > x 1
x 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 1
x R, sin(x y) 1
Przykady:
x N, 2x > 1010000
x R, x2 2x 1
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
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)
2.9
Homomorzm algebr
Homomorzm to odwzorowanie dziedziny jednej algebry w dziedzin drugiej algebry zachowujce dziaania tych algebr
Formalna denicja homomorzmu:
Algebra oryginalna:
.
A , (X, K; fi : X ni X, i = 1, . . . , K)
Algebra homomorczna:
.
B , (Y, K; fi : 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.
Jeli homomorzm h : X Y jest odwzorowaniem rnowartociowym i na, to h1 nie musi by homomorzmem. Jeli h1 jest
homomorzmem, to h nazywamy izomorzmem algebr A oraz B.
41
x 6 P, y 6 P (x + y) P
42
Zadanie:
Poka, e rozszerzenie w powyszym przykadzie algebry A o operacj odejmowania 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
|(q1 q2 )| p = |r2 r1 |
Poniewa p dzieli |r1 r2 |, a |r1 r2 | < p, to r1 = r2 .
Std
q1 p = q2 p q1 = q2
43
Operacje modulo +p , p , p : Zp Zp Zp
x +p y , mod p (x + y), x p y , mod p (x y), x p y , mod p (x y),
gdzie +, to dodawanie i mnoenie liczb cakowitych
Jednoargumentowa operacja negacji modulo p : Zp Zp
p x , 0 p x = p x, x Zp
Odejmowanie modulo przez dodawanie modulo i negacj modulo:
x p y = x +p (p y)
Wasnoci mod p dla dowolnych x, y Z :
mod p (x + y)
mod p (x + y)
mod p (x)
mod p (x)
mod p (x y)
mod p (x y)
mod p (x y)
mod p (x y)
44
2.11
45
z }| {
u(n) , mod p (n)
8 bitw
z
}|
{ z}|{
u(100) = mod 256 (100)= 100 = 01100100
8 bitw
8 bitw
8 bitw
z
}|
{ z
}|
{ z}|{
u(100) = mod 256 (100)=100 + 256= 156 = 10011100
8 bitw
8 bitw
8 bitw
z
}|
{ z
}|
{ z}|{
u(128) = mod 256 (128)=128 + 256= 128 = 10000000
8 bitw
8 bitw
8 bitw
z
}|
{ z }| { z}|{
u(1) = mod 256 (1)=1 + 256= 255 = 11111111
=
=
=
=
1 0
0 1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
2
1
1
0
0
0
0
0
0
0
0
2.12
46
Arytmetyka w zmiennym przecinku stosuje reprezentacj opart na koncepcji 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 jednoznaczna, bo R {0} mona podzieli na przeskalowane przez 2k , k Z,
wersje przedziau [1, 2) :
R {0} = (, 1] (1, 0) (0, 1) [1, )
X
(, 1] = (8, 4] (4, 2] (2, 1] =
(2k+1 , 2k ]
k=0
X
1
1 1
(2k+1 , 2k ]
(1, 0) = 1, , =
2
2 4
k=1
X
1
1 1
,1 =
[2k , 2k+1 )
(0, 1) = ,
4 2
2
k=1
[2k , 2k+1 )
k=0
s(x)
1 [31]
1 [63]
c(x) + b
8 [30-23]
11 [62-52]
m(x)
23 [22-00]
52 [51-00]
b
127
1023
gdzie pole bitowe opisano w postaci: dugo [zakres pozycji bitowych] i tak
dla 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 zoone
z samych zer i z samych jedynek zarezerwowano dla innych celw. Std
zakres dopuszczalnych cech wynosi:
c [1 b, 2nc 2 b]
W IEEE 754 warto zapisu liczby x w przypadku mantysy znormalizowanej wynosi:
x = (1)s m 2c , m [1, 2 2nm ], c [1 b, 2nc 2 b]
nc
x [22
2b
nc
2b
(2 2nm )]
x [2
1023
W IEEE 754 oprcz mantysy znormalizowanej dopuszczono dla wyrnionej wartoci cechy nie znormalizowany zapis uamka m w miejscu mantysy, z wag jeden dla najstarszej pozycji (bez domylnej jedynki), t.j. dla
c + b = 0 warto zapisu liczby x wynosi:
x = (1)s m 2b , m [2nm +1 , 2 2nm +1 ]
x [2
x [2
126
1022
N = 1 + nc + nm , b = 2nc 1 1
Rn (N, nc )
c [1 b, 2nc 2 b]}
Rz (32, 8)
Rn (32, 8) ,
Rz (64, 11)
Rn (64, 11) ,
wynik
0
49
operacja
0/ 0
/
0
wynik
NaN
NaN
NaN
NaN
2.12.1
s
0
kod(c)
e
0...0
0...0
0 . . . 01
.
..
1 . . . 10
1...1
1...1
1...1
kod(m)
f
0...0
0 . . . 01
..
.
1...1
X ...X
0...0
0 . . . 01
..
.
01 . . . 1
10 . . . 0
..
.
1...1
x
+0
s
1
kod(c)
e
0...0
+bez norm.
0, f 2b+1
0...0
+z norm.
1, f 2eb
0 . . . 01
.
..
1 . . . 10
1...1
SN aN
1...1
QN aN
1...1
kod(m)
f
0...0
0 . . . 01
..
.
1...1
X ...X
0...0
0 . . . 01
..
.
01 . . . 1
10 . . . 0
..
.
1...1
x
0
bez norm.
0, f 2b+1
z norm.
1, f 2eb
SN aN
QN aN
Schematy rekurencyjne
Pojcie schematu rekurencyjnego, t.j. rekursji:
Rekursja to specyczny schemat konstrukcji zbiorw typu rekurencyjnego
Rekursja skada si z dwch krokw:
1. krok bazowy: okrela obiekty bazowe
2. krok rekurencyjny: konstruuje elementy zoone z elementw prostszych
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 trjkt
Sierpiskiego, czy zbir Cantora C :
C = lim Cn
n
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 z
wza r jako korzenia z referencjami na drzewa T1 , . . . , Tk jest nowym
drzewem T
Uyteczno rekursji:
Funkcje jzyka programowania mog realizowa rekursje, t.j. procedury rekurencyjne, np. n! oblicza nastpujca funkcja jzyka C:
int silnia(int n) { if (n == 0) return 1; else return nsilnia(n 1); }
51
Przykad 3.2 Zbalansowane wyraenia nawiasowe
Zbalansowane wyraenia nawiasowe ze zbioru B budujemy tylko z symboli nawiasw ( oraz ) stosujc nastpujcy schemat rekurencyjny:
1. krok bazowy: E B symbol pusty jest wyraeniem nawiasowym
2. krok rekurencyjny 1: x B (x) B
3. krok rekurencyjny 2: x, y B xy B
(1)
3.1
Wiee Hanoi
(b) zakoczenie;
2. krok rekurencyjny dla n > 1:
(a) niech k bdzie numerem trzeciej wiey rnej od i oraz j
(b) HanoiT owers(i, k, n 1);
(c) i j;
53
t
1
2
1
1
2
1
0
i1 , j1 , n1 , k1 ; . . . ; it , jt , nt , kt
1, 3, 2, 2
1, 3, 2, 2; 1, 2, 1,
1, 3, 2, 2
1, 3, 2, 2
1, 3, 2, 2; 2, 3, 1,
1, 3, 2, 1
polecenie
12
13
23
Zadanie: Zapisz procedur rekurencyjn silnia(n) i utwrz tabel ladu wykonania silnia(4).
Kolejna tabela opisuje lad wywoania HonoiT owers(1, 3, 3)
kroki
2.(a)
2.(b); 2.(a)
2.(b); 2.(b); 1.(a)
2.(b); 2.(b); 1.(b)
2.(b); 2.(c)
2.(b); 2.(d); 1.(a)
2.(b); 2.(d); 1.(b)
2.(b); 2.(e)
2.(c)
2.(d); 2.(a)
2.(d); 2.(b); 1.(a)
2.(d); 2.(b); 1.(b)
2.(d); 2.(c)
2.(d); 2.(d); 1.(a)
2.(d); 2.(d); 1.(b)
2.(d); 2.(e)
2.(e)
t
1
2
3
2
2
3
2
1
1
2
3
2
2
3
2
1
0
i1 , j1 , n1 , k1 ; . . . ; it , jt , nt , kt
1, 3, 3, 2
1, 3, 3, 2; 1, 2, 2, 3
1, 3, 3, 2; 1, 2, 2, 3; 1, 3, 1,
1, 3, 3, 2; 1, 2, 2, 3
1, 3, 3, 2; 1, 2, 2, 3
1, 3, 3, 2; 1, 2, 2, 3; 3, 2, 1,
1, 3, 3, 2; 1, 2, 2, 3;
1, 3, 3, 2
1, 3, 3, 2
1, 3, 3, 2; 2, 3, 2, 1
1, 3, 3, 2; 2, 3, 2, 1; 2, 1, 1,
1, 3, 3, 2; 2, 3, 2, 1
1, 3, 3, 2; 2, 3, 2, 1
1, 3, 3, 2; 2, 3, 2, 1; 1, 3, 1,
1, 3, 3, 2; 2, 3, 2, 1
1, 3, 3, 2
54
polecenie
13
12
32
13
21
23
13
3.2
NP
/ab
+ abc
/abc
/ abc
a/bc
/ abc
+a b c/da
+ /cda b/da
ONP
ab/
ab + c
ab/c
ab c/
abc/
ab c/
abcda/ +
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 wykonywania operacji w NA
Tabela priorytetw i regu czenia:
poziom operacje reguy czenia
2
/
od prawej
+
od lewej
1
55
Metoda:
1. Przygotuj wskaniki biecej pozycji:
i dla wejcia w
j 0 dla wyjcia u
t 0 dla stosu s
2. Dla
(a)
(b)
(c)
i = 1, . . . , n :
Przypadek xi {a, . . . , z} : j j + 1; yj xi ;
Przypadek xi = ( : t t + 1; st xi
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 st
i xi ) wykonuj:
j j + 1; yj st ; t t 1;
ii. Wprowad xi na stos: t t + 1; st xi
xi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
(
(
c
/
d
+
a
)
(
b
d
+
c
)
/
d
)
krok
1.
2.(b)
2.(b)
2.(a)
2.(d)ii.
2.(a)
2.(d)i ii.
2.(a)
2.(c)i ii.
2.(d)ii.
2.(b)
2.(a)
2.(d)ii.
2.(a)
2.(d)i ii.
2.(a)
2.(c)i ii.
2.(d)ii.
2.(a)
2.(c)i ii.
t s 1 . . . st
0
1 (
2 ((
j
0
yj
2
3
4
5
d
/
a
+
7
8
9
10
c
+
3 ((/
3 ((+
1 (
2 (
3 ((
4 ((
4 ((+
2 (
3 (/
0
57
11
d
12 13 /
3.3
2. Dla j = 1, . . . , J :
59
yj
1
2
3
4
5
6
7
8
9
10
11
12
13
C
D
/
A
+
B
D
C
+
D
/
krok
1.
2.(a)
2.(a)
2.(b)i.
2.(a)
2.(b)iii.
2.(a)
2.(a)
2.(b)i.
2.(a)
2.(b)iii.
2.(a)
2.(b)iii.
2.(b)iv.
t
0
1
2
1
2
1
2
3
2
2
2
3
2
1
s 1 . . . st
C
CD
$
$A
$
$B
$BD
$$
$$C
$$
$$D
$$
$
generowany kod
3.4
60
2. krok indukcyjny: jeli element x jest zbudowany rekurencyjnie z elementw x1 , . . . , xk , to dowodzimy prawdziwoci implikacji
[P (x1 ) P (xk )] P (x)
Klasyczna indukcja matematyczna przyjmuje nastpujce zaoenia:
Z = N {0}, Z0 = {0}
k=1
(2k)2 =
2
n(n + 1)(2n + 1)
3
Niech L(n) lewa strona rwnoci, P(n) prawa strona rwnoci, predykat
P (n) :
P (n) , L(n) = P(n)
Podstawa indukcji n0 = 1 :
2
1 2 3 = 4, L(1) = P(1) P (1)
3
61
2
(n 1)n(2n 1) + 4n2 =
3
2
2
n[(n 1)(2n 1) + 6n] = n(n + 1)(2n + 1) = P(n)
3
3
3
L(n) = (n 1)n(2n 1) + 6n2
2
Ak =
k=1
n
\
k=1
62
Ak
Pn
3.
n dla n > 1
k=1 1/ k >
5. 5|(2 4n + 3 9n ) dla n 0
6. 7|(2n+2 + 32n+1 ) dla n 0
7. 13|(42n+1 + 3n+2 ) dla n 0
8. Jeli c0 = c1 = 1, c2 = 3 oraz dla n > 2 cn = 3cn1 3cn2 + cn3 , to
cn = n2 n + 1 dla n 0
Przykad 3.4 Istnienie acucha zwycistw w turnieju
Rozwamy turnieje sportowe , w ktrych kady gracz spotyka si z kadym i
kada gra dwch przeciwnikw koczy si zwycistwem jednego z nich. acuch
zwycistw dugoci k, dotyczy k graczy G1 , . . . , Gk i ma miejsce gdy gracz G1
pokona gracza G2 , G2 wygra z G3 , . . . , Gk1 okaza si lepszy od Gk . Pokaemy, e w kadym takim turnieju z n uczestnikami mona zawsze zidentykowa
acuch zwycistw dugoci n.
Baza indukcji dla n0 = 3. Niech gracze A, B, C uczestnicz w turnieju. Jeli
A wygra z B to zapisujemy ten fakt jako A B. Po jego zakoczeniu mamy
dwie moliwoci:
1. Jeden z graczy pokona pozostaych. Np. A B, A C i wtedy gdy
B C, to acuch zwycistw ma posta A B C, w przeciwnym
razie A C B.
2. Kady z graczy ma po jednym zwycistwie i jednej porace. Np. B A i
A C i wtedy acuch zwycistw to B A C.
Krok indukcyjny dla n > 3. Po zakoczeniu turnieju wybierzmy dowolnego gracza X, ktry ma przynajmniej jedno zwycistwo i przynajmniej jedn porak.
Taki gracz istnieje, bo jego brak oznaczaoby, e w turnieju s tylko dwie kategorie graczy ci, ktrzy wygrali wszystkie spotkania oraz ci, ktrzy odnieli
same poraki. Ale w kadej z tych kategorii moe znale si co najwyej jeden
gracz. Wtedy liczba wszystkich graczy n musiaaby wynosi co najwyej dwch
graczy, wbrew zaoeniu, e n > 3.
Gracz X okrela dwie kategorie graczy:
1. W zbiorze W znajduj si gracze, z ktrymi X wygra
2. W zbiorze P s ci przeciwnicy, z ktrymi X przegra
Poniewa liczno n1 = |P| jest mniejsza ni n, to z zaoenia indukcyjnego
istnieje w zbiorze P acuch zwycistw:
P1 . . . Pn1
63
L(n) = L(n 1) + n = 1 +
n(n + 1)
(n 1)n
+n=1+
2
2
2. Poka, e w wielokcie wypukym o n wierzchokach suma ktw midzy kolejnymi bokami wynosi (n 2)180 . Uwaga: Figura jest wypuka
gdy kady odcinek czcy jej dwa dowolne punkty cakowicie si w niej
zawiera.
64
3.4.2
Lemat 3.1
Jeli an jest cigiem arytmetycznym o rnicy r, to dla m n :
n
X
k=m
Dowd:
1
1
=
ak ak+1
r
Zauwamy, e:
1
1
=
ak ak+1
r
1
1
am
an+1
1
1
ak
ak+1
65
Dlatego
n
X
n
X
1
1
=
ak ak+1
r
k=m
1
r
h
1
1
am
am+1
1
r
1
1
ak
ak+1
k=m
am+1
1
am+2
+ +
1
an1
1
an
1
1
an
an+1
1
1
1
1
1
1
1
1
+ +
am
am+1
am+1
am+2
an1
an
an
an+1
=
1
r
1
1
am
an+1
i
k=1
n
1
=
n(n + 1)
n+1
n(n + 1)
r a1
an+1
1 1 n+1
n+1
k=1
Zadania:
Poka metod rnic:
Pn
1.
k=1 1/(2k 1)(2k + 1) = n/(2n + 1)
Pn
2.
k=1 1/(3k 2)(3k + 1) = n/(3n + 1)
Pn1
3.
k=0 1/(n + k)(n + k + 1) = 1/2n
Pn1
2
4.
k=0 1/(n 2k)(n 2k + 2) = n/(4 n ) dla nieparzystych n > 0
3.5
Rwnania rekurencyjne
Rozwizanie rwnania r2 + r 1 = 0 :
1 5
1 + 5
r1 =
, r2 =
2
2
Szukamy wspczynnikw c1 , c2 , takich, e Fn , c1 r1n + c2 rn spenia warunki pocztkowe F0 = 0, F1 = 1 :
c1 r10 + c2 r20 = 0, c1 r1 + c2 r2 = 1
Fn =
5
2
2
Wasno 3.2 Cig Fibonacciego
1. Fn+1 Fn1 Fn2 = (1)n , n 1.
Dowd: Niech cn , Fn+1 Fn1 Fn2 . Dla n = 1, c1 = 1. Dla n + 1,
wyraenie ma posta:
2
2
cn+1 = Fn+2 Fn Fn+1
= (Fn+1 + Fn )Fn Fn+1
=
Dla k = 2 mamy:
F2 Fn+12+1 + F1 Fn+12 = F2 Fn + F1 Fn1 = Fn + Fn1 = Fn+1 ,
co uzupenia dowd kroku indukcyjnego.
4. Jeli m|n, m > 0, n 0, to Fm |Fn .
Dowd: Zamy, e n = mk. Jeli k = 1, to m = n, Fm |Fn = Fm . Jeli
k = 2, to n m = 2m m = m i z powyszej rwnoci mamy:
Fn = Fm Fnm+1 + Fm1 Fnm =
= Fm Fnm+1 + Fm1 Fm = Fm (Fnm+1 + Fm1 )
Std dla k = 2, Fm |Fn .
(2)
(3)
(4)
j=1
Rwnanie charakterystyczne:
r2 r 2 = 0
Pierwiastki rwnania: r1 = 1, r2 = 2. Oglne rozwizanie:
an = c1 (1)n + c2 2n
Wyznaczenie wspczynnikw c1 , c2 z warunkw pocztkowych:
c1 + c2 = 2, c1 + 2c2 = 1
Std c1 = c2 = 1 i rozwizanie an ma posta:
an = (1)n + 2n
Posta jednorodna:
an+2 4an+1 + 4an = 0
Rwnanie charakterystyczne:
r2 4r + 4 = 0
Pierwiastki rwnania: r1 = r2 = 2. Oglne rozwizanie:
an = c1 2n + c2 n2n = (c1 + c2 n)2n
Wyznaczenie wspczynnikw c1 , c2 z warunkw pocztkowych:
c1 = 1, (c1 + c2 )2 = 4
Std c1 = c2 = 1 i rozwizanie an ma posta:
an = (n + 1)2n
Zadania:
Znajd rozwizania nastpujcych rwna rekurencyjnych:
1. Rwnanie Fibonacciego z warunkami: a0 = a1 = 1
2. Rwnanie Fibonacciego z warunkami: a0 = 1, a1 = 3
3. an+2 = 2an+1 2an , a0 = a1 = 2
4. an+2 an+1 6an , a0 = 0, a1 = 1
5. an+2 an+1 6an , a0 = 2, a1 = 1
6. an+2 = an , a0 = a1 = 2
7. an+3 4an+2 + 5an+1 2an = 0, a0 = 4, a1 = 7, a2 = 17
Problemy:
1. Poka, e iloraz kolejnych wyrazw cigu Finonacciego zbiega do zotej
redniej, t.j.:
Fn+1
1+ 5
lim
=
n Fn
2
2. Niech an bdzie liczb wszystkich sw dugoci n zoonych z cyfr 0, 1 nie
zawierajcych kolejnych dwch jedynek 11. Poka, e:
a0 = 1, a1 = 2, a3 = 5, an = an1 + an2 , dla n 3
3. Znajd zwizek rekurencyjny dla cigu
70
(a) an , n/2
(b) bn , n/3
(c) cn , an + bn
(6)
Zadania:
Znajd rozwizania nastpujcych rwna rekurencyjnych:
1. an+2 = 3an+1 2an + 2 3n , a0 = 1, a1 = 2
2. an+3 6an+2 + 11an+1 6an = 12n3n, a0 = 2, a1 = 25, a2 = 140
3. an+2 5an+1 + 6an = 4n2 2n 3, a0 = 6, a1 = 14
3.6
1. Wspczynniki dwumienne
2. Wasnoci liczbowe zbiorw i funkcji
3. Zasada wczania i wyczania
4. Podziay
5. Zbiory z powtrzeniami
6. Zliczanie drzew binarnych
3.6.1
Wspczynniki dwumienne
Wspczynnik dwumienny ak jest wspczynnikiem przy potdze xk w
rozwiniciu w szereg Taylora funkcji (1 + x)a , k {0} N, a R :
X
a k
a
(1 + x) =
x
k
k=0
k=0
ck xk ck =
72
f (k) (0)
k!
n
Y
gdy ui Z,
gdy ui
6 Z
1
0
i=1
qZ (x) =
Z2U
n
X
X
x =
k=0 Z,|Z|=k
n
X
k=0
Z drugiej strony:
n
XY
p(x) =
bi
Z2U i=1
1
X
1
X
b1 =0
b1 =0
b1 =0
1
X
xbn
bn1 =0
1
X
bn =0
bn1 =0
[xb1 . . . xbn1 ]
1
X
bn2 =0
.
.
.
b1 =0
73
ck,n x
n
.
k
74
3.6.2
3.6.3
6=JI
75
iJ
6=J(I{n+1}
B=Y
A{y}
yY
Dlatego
|B| = n
X
A{y}
yY
X
\
X
|Z|+1
A{y} =
A{y}
(1)
yY
yZ
6=ZY
X
(1)|Z|+1 |AZ |
6=ZY
n1
X
(1)
j+1
(n j)
j=1 ZY,|Z|=j
n1
X
(1)
j+1
j=1
Ostatecznie
|B| = nk
n1
X
j=1
(1)j+1
n
k
(n j)
j
n
(n j)k =
j
n
X
j=0
76
(1)j
n
(n j)k
j
3.6.4
Podziay
3.6.5
Zbiory z powtrzeniami
77
Niech s(k, n) bdzie liczb rnych k-elementowych wielozbiorw okrelonych w zbiorze n-elementowym. Wtedy:
s(k, n + 1) = s(k, n) + s(k 1, n) + + s(1, n) + s(0, n)
Dowd: Ten rekurencyjny zwizek wynika z faktu, e element n + 1 albo
nie wystepuje w wielozbiorze i mamy wtedy s(k, n) takich wielozbiorw w
zbiorze n-elementowym, albo wystpuje z krotnoci j > i wtedy krotno
k j daje s(k j, n) wielozbiorw.
s(k, n) spenia prostsz relacj rekurencyjn:
s(k, n + 1) = s(k 1, n + 1) + s(k, n)
Wniosek: Tablica wartoci s(k, n) jest obrcon tablic wartoci
dokadniej:
n+k1
s(k, n) =
k
3.6.6
, a
n
k
Rekurencyjny schemat denicji zbioru drzew T : Niech s symbolizuje dowoln zawarto wza drzewa, a E jest symbolem drzewa pustego.
1. krok bazowy:
(a) E T puste drzewo binarne
(b) (E, s, E) T binarne drzewo o jednym wle
2. krok indukcyjny:
T1 , T2 T T , (T1 , s, T2 ) T
Drzewo T1 nazywamy lewym poddrzewem drzewa T, a T2 jego prawym poddrzewem. Mwimy, e zawarto s znajduje si w korzeniu
drzewa T. Jeli T1 6= E, to mwimy, e korze T1 jest lewym synem
korzenia drzewa T. Jeli natomiast T2 6= E, to korze T2 jest prawym
synem korzenia drzewa T.
Formalnie drzewo T T jest napisem nad alfabetem {s, E, (, )} poprawnie zdeniowanym wedug powyszego schematu o liczbie wzw rwnej
liczbie wystpie symbolu s
W praktyce programowania w konstrukcji (T1 , s, T2 ), s jest zastpowane
czsto zoon struktur danych, a Ti referencj na by moe puste poddrzewo
Mwimy, e dwa drzewa s rne jeli T1 6= T2 w sensie napisw, ktre je
reprezentuj
78
2. t(1) = 1 bo (E, s, E) T
F (x) ,
f (n)x
n=0
xF 2 (x) = x
f (i)xi
i=0
=x
X
k=0
=x
X
j=0
f (i)f (j)
i+j=k
f (k + 1)xk =
k=0
f (j)xj
f (k + 1)xk+1
k=0
79
(7)
F (x) =
1 4x
2x
G(x) =
X
1/2
(4x)
X
1/2
1 4x :
n
(4) x
n=0
n=0
1/2
n
(4) =
n
1
2
1
2
3
2
(2n3)
(4)n
2
n!
1 1 3 (2n 3)2n 4n
=
n!
1 3 (2n 3)2n (n 1)!
=
n!(n 1)!
1 3 (2n 3) 2 4 (2n 2) 2
n!(n 1)!
=
=
1 2 3 (2n 3) (2n 2) 2
n!(n 1)!
2
2 2n 2
(2n 2)!
=
(n 1)!(n 1)! n
n n1
F (x) =
X
1 2n 2
n=1
Wniosek: f (n) =
1
n+1
2n
n
n1
Kongruencje
Podzielno liczb cakowitych
Algebra reszt
Szyfrowanie
80
n1
X
n=0
1
2n n
x
n+1 n
4.1
(8)
Przykady:
Dla a = 15, b = 4 : q = 3, r = 3
Dla a = 15, b = 4 : q = 3, r = 3
Dla a = 15, b = 4 : q = 4, r = 1
Dla a = 15, b = 4 : q = 4, r = 1
Dla dowolnych a, b Z, b 6= 0 istnieje dokadnie jedna para liczb cakowitych (q, r) speniajca zwizki (8)
Dowd jednoznacznoci ilorazu i reszty:
Jeli a = q1 b + r1 = q2 b + r2 , 0 r1 , r2 |b| 1, to
|q1 q2 | |b| = |r1 r2 | < |b|
Std |q1 q2 | < 1, a dla liczb cakowitych jest to moliwe gdy q1 = q2 = q.
W efekcie r1 = a qb = r2 .
Dowd istnienia ilorazu i reszty dla a 0 (przez indukcj):
Baza indukcji dla a = 0, . . . , |b| 1 :
q = 0, r = a bo a = 0 b + a, 0 a |b| 1
Krok indukcyjny dla a (|b| 1) :
a = qb + r, 0 r |b| 1 a + 1 = q b + r , 0 r |b| 1
a + 1 = (qb + r) + 1 = qb + (r + 1) = q b + r , 0 r |b| 1
W drugim przypadku dla b > 0 mamy q = q + 1, r = 0, bo:
a + 1 = (qb + r) + 1 = (q + 1)b + (r + 1 b) = q b + r , r = 0
Natomiast gdy r + 1 = b dla b < 0 mamy q = q 1, r = 0,
a + 1 = (qb + r) + 1 = (q 1)b + (r + 1 + b) = q b + r , r = 0
81
x = max{k Z : k x}
x = min{k Z : k x}
Podstawowe wasnoci x i x, x R :
x x < x + 1
j k
x
x
n N,
=
n
n
x = x
Jeli b > 0, to iloraz cakowity otrzymujemy jako doln cz cakowit ilorazu rzeczywistego:
jak
ab=
b
Mianowicie:
jak a jak
<
+1
b j bk
j a kb
a
b a<
b+b
b
jak b
0a
b < b
b
Biorc wic q = a/b, r = a qb otrzymujemy wasno denicyjn
dla ilorazu i reszty z dzielenia cakowitego a przez b :
a = qb + r, 0 r b 1
82
Jeli b < 0, to iloraz cakowity otrzymujemy jako grn cz cakowit ilorazu rzeczywistego:
lam
ab=
b
Mianowicie:
a
a
a
+1
<
b
b
b
a
a
(b) a <
(b) + |b|
b
b
lam
lam
b a<
b + |b|
b
lam b
0a
b < |b|
b
(d) a = 25, b = 3
2. Sprawd wasno n N, x R, x/n = x/n gdy:
(a) x = 25, 333 n = 7
(b) x = 25, 333 n = 7
Zadania:
1. Oblicz a b oraz mod b (a) gdy:
(a) a = 2b 1, a, b Z, b > 0
(b) a = 2b 1, a, b Z, b < 0
83
4.1.1
Dowd:
4.1.2
Zadanie:
Sprawd na przykadach, e nastpujca funkcja C poprawnie realizuje algorytm
Euklidesa:
int NWP(int a, int b)
{ int r;
while (r = a%b) {
a = b; b = r;
}
return b;
}
wiczenia:
1. Oblicz N W P (a, b) gdy:
(a) a = 81, b = 27
(b) a = 81, b = 27
(c) a = 81, b = 27
86
(c) a = 81, b = 27
4.1.4
xA = xA + xB , yA
= yA + yB 1, xB = 0, yB
=1
88
xA = 0, yA
= 0, xB = xA + xB , yB
= yA + yB
xB = xA + xB 1, yB = yA + yB , xA = 0, yA = 1
(b) xB a + yB b < a (xA a + yA b) :
xB = 0, yB = 0, xA = xA + xB , yA = yA + yB
Powysze kroki wyczerpuj wszystkie moliwoci kroku indukcyjnego, w ktrym pokazalimy,
e jeli stan pynw w miarkach przed danym krokiem jest kombinacj liniow xa + yb, to po
89
wiczenia:
1. Znajd x, y Z takie, e x 0, y 0, N W P (a, b) = xa + yb gdy:
(a) a = 1024, b = 10024
(b) a = 10024, b = 1024
2. Uzyskaj 32 litry stosujc tylko menzurki A i B odpowiednio o pojemnociach 64 i 48 litrw.
3. Uzyskaj 96 litrw w naczyniu C o pojemnoci 1000 litrw stosujc menzurki A i B odpowiednio o pojemnociach 64 i 48 litrw.
Zadania:
1. Uzyskaj 36 litrw stosujc tylko menzurki o pojemnoci 64 i 48 litrw.
2. Uzyskaj 108 litrw w naczyniu C o pojemnoci 1000 litrw stosujc menzurki A i B o pojemnoci 64 i 48 litrw.
4.1.5
n
Y
[xi ai + yi b] =
i=1
n
Y
xi ai + yb =
i=1
n
Y
i=1
xi
n
Y
ai + yb = xa + yb
i=1
Przykady liczb pierwszych: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47
Twierdzenie 4.5 O rozkadzie na czynniki pierwsze Dla dowolnej liczby naturalnej n 2 istnieje dokadnie jeden rozkad na czynniki pierwsze, t.j. istnieje
jedyne r i istnieje jedyny zestaw liczb pierwszych p1 pr taki, e
n = p1 pr
91
n = ab = p1 pr
Mamy wic prawdziwo wniosku indukcyjnego dla n.
Przypumy teraz, e mamy dwa rozkady na czynniki pierwsze:
n = p1 pr1 = q1 qr2
Wtedy p1 = qi dla pewnego i, bo p1 |q1 . . . qr2 . Dzielimy obie strony powyszej rwnoci przez
1. Prawa strona te musi by jeden, a wic nie moe by adnego qj , ktre nie ulego skrceniu.
To jest oba zestawy s identyczne.
Q
Q
2. Jeli a = p pe(p) , b = p pf (p) s rozkadami na czynniki pierwsze
liczb a i liczb b, to
Y
N W P (a, b) =
pmin(e(p),f (p))
p liczba pierwsza
N W W (a, b) =
pmax(e(p),f (p))
p liczba pierwsza
wiczenia:
1. Znajd rozkad na czynniki pierwsze dla n = 33, 55, 333, 555
2. Znajd rozkad na czynniki pierwsze dla n = 33 55, 333 555
3. Znajd na podstawie rozkadu na czynniki pierwsze warto N W P (256, 96)
Q
Q
Problem: Udowodnij wniosek: Jeli a = p pe(p) , b = p pf (p) s rozkadami na
czynniki pierwsze liczb a i liczb b, to
Y
N W P (a, b) =
pmin(e(p),f (p))
p liczba pierwsza
N W W (a, b) =
p liczba pierwsza
92
pmax(e(p),f (p))
4.1.7
Lemat 4.2 J eli n nie jest liczb pierwsz, to istnieje liczba pierwsza p n
taka, e p|n
n, p|n
Twierdzenie 4.6
Istnieje nieskoczenie wiele liczb pierwszych.
Dowd przez zaprzeczenie
Gdyby zbir liczb pierwszych by skoczony, t.j. gdyby istniao tylko n liczb pierwszych p1 , . . . , pn ,
to liczba q = p1 pn + 1 daje przy dzieleniu przez pi reszt 1, i = 1, . . . , n. Dlatego q nie
dzieli si przez adn liczb pierwsz, a wic samo q musi by liczb pierwsz wiksz od wszyst-
kich liczb pierwszych. Std q > q. Otrzymana sprzeczno dowodzi nieskoczonoci zbioru liczb
pierwszych.
wiczenie: Znajd technik sita Eratostenesa wszystkie liczby pierwsze z przedziau [1, 111].
4.1.8
Liczby Mersena
93
Liczby Fermata
r+1
1. 22 + 1 dzieli 22
r+1
22
1, bo
r
1 = 22
r 2
r
r
1 = (22 1)(22 + 1)
1 = 22
2. 22 + 1 dzieli 22 1 + 1
r
r
r
r
3. Jeli 22 + 1 dzieli 22 a + 1, to 22 + 1 dzieli 22 (a+2) + 1,
Dowd:
22
(a+2)
2r
22
22
+1
=
+1
r+1
=
r+1
22
2r
Wniosek: 22 + 1 dzieli 22
+1
22 a + 1
22r + 1
+ 1 22
2r
2
22
22
r+1
r+1
+1
+1
+1
r+1
22
1
22r + 1
+ 1 nie jest
4.2
Algebra reszt
(mod m)
(mod m)
x1 x2 y1 y2
Jeli x y (mod m), k N, to
xk y k
kx ky
(mod m)
(mod m), kx ky
(mod m)
x
d
y
d
(mod m/d)
(mod m)
to
(mod m/N W P (k, m))
xy
Dowd:
dm |dk (x y) m |k (x y) m |(x y)
m
|(x y)
d
(mod m/d)
Ale k/d oraz m/d s wzgldnie pierwsze i m/d dzielc (k/d)(x y) musi dzieli x y.
95
xy
Jeli x y (mod mi ), i = 1, . . . , n, to
(mod N W W (m1 , . . . , mn ))
xy
1. Jeli n =
10, to
Pk
i=0 ci 10
n
n
n
k
X
ci
(mod 9)
(9)
ci
(mod 3)
(10)
i=0
k
X
i=0
k
X
(1)i ci
(mod 11)
(11)
i=0
Pk
2. Jeli n = i=0 ci bi jest rozwiniciem przy podstawie b > 1 liczby n N,
0 ci < b, to
n
n
k
X
ci
i=0
(mod b 1)
k
X
(1)i ci
(mod b + 1)
i=0
wiczenia:
1. Poka, e wasnoci z punktu jeden wynikaj z wasnoci punktu dwa.
2. Dlaczego kongruencja (10) wynika z kongruencji (9).
Zadania:
1. Udowodnij prawdziwo kongruencji (2).
2. Udowodnij prawdziwo kongruencji (2).
Przykad 4.1 rachunku reszt
Znajdujemy reszt z dzielenia 21023 przez 7.
Poniewa 23 = 8 1 (mod 7) i 1023 = 3 341, to
21023 = (23 )341 1341 1 (mod 7)
96
(mod 11)
(mod 9)
(mod 11)
Zadania:
1. Oblicz reszt z dzielenia 31023 przez 7
2. Oblicz reszt z dzielenia 21023 przez 11
3. Poka metod reszt, e 7|(8k 1) dla dowolnego k N
4. Jak reszt z dzielenia przez 27 daje liczba x, jeli 7x 21 (mod 27)?
5. Jak reszt z dzielenia przez 9 daje liczba x, jeli 3x 15 (mod 27)?
6. Czy liczba 9876543210 dzieli si przez przez 3 ?
7. Czy liczba 9876543215 dzieli si przez przez 11 ?
8. Rozwi rwnanie w resztach 14x 2 12 (mod 42)
9. Rozwi rwnanie w resztach 14x 12 2 (mod 120).
Problem:
W midzynarodowym systemie numeracji ksiek (ISBN) dziewi pierwszych
97
cyfr dziesitnych xi , i = 1, . . . , 9, tworzy numer, a dziesity symbol jest symbolem kontrolnym obliczanym nastpujco:
9
X
x10 ,
ixi
(mod 11)
i=1
Rwnania w resztach
(mod m)
gdzie m N, a, b Z
k a + l m = N W P (a, m)
k
b
b
b
+ l
= N W P (a, m)
=b
N W P (a, m)
N W P (a, m)
N W P (a, m)
m
N W P (a, m)
(mod m)
a(x x) 0
(mod m)
i m
i
m , x = x +
= x + im
a
a
Zadania:
Znajd wszystkie rozwizania rwnania ax b (mod m), gdy:
1. a = 6, b = 18, m = 24
2. a = 12, b = 18, m = 24
3. a = 26, b = 39, m = 65
4. a = 26, b = 39, m = 78
5. a = 127, b = 51, m = 111
4.2.2
99
cj Mj rj 0
(mod mi ), gdy i 6= j
x = c1 M1 r1 + + cn Mn rn ri , i = 1, . . . , n
Wemy x , modM (x ) [0, M ). Sprawdzamy, e x ri , i = 1, . . . , n. Istnieje wic liczba x
speniajca tez twierdzenia.
Dla dowodu jednoznacznoci x w [0, M ), przypumy, e istniej liczby x1 x2 [0, M ) takie,
e
x1 ri (mod mi ), x2 ri (mod mi ), i = 1, . . . , n
Wtedy dla pewnych ki 0, ki Z, i = 1, . . . , n
m1 |x1 x2 , . . . , mn |x1 x2
Poniewa liczby m1 , . . . , mn s wzgldnie pierwsze, to M |x1 x2 . Poniewa x1 x2 < M, to
(mod 7)
2. r1 = 0, m1 = 2, r2 = 4, m2 = 5, r3 = 3, m3 = 7
3. r1 = 3, m1 = 4, r2 = 2, m2 = 3
4. r1 = 3, m1 = 4, r2 = 2, m2 = 3, r3 = 4, m3 = 5
5. r1 = 3, m1 = 4, r2 = 2, m2 = 6
6. r1 = 3, m1 = 4, r2 = 2, m2 = 6, r3 = 4, m3 = 5
4.2.3
(mod p)
Dowd:
(mod p)
(mod p)
wiczenia:
Poka, e:
1. 7 dzieli 1286 1
2. 7 dzieli 646 + 41
3. 11 dzieli 12810 1
4. 11 dzieli 6410 + 54
5. 5 dzieli 12814 1
6. 5 dzieli 6414 + 54
101
4.2.4
Funkcja Eulera
Z chiskiego twierdzenia o resztach wiemy, e dla m [0, m) oraz n [0, n) istnieje dokadnie
jedno k [0, mn) o wasnoci:
k m
(mod m), k n
(mod n),
a
mod a (x)
jeli a|x
w przeciwnym razie
m
u
jeli u = 0,
w przeciwnym razie
102
4.2.5
Dowd:
a(m) 1
(mod m)
(mod m), an x x
(mod m)
(mod m)
(mod m)
Std
(a )(m)1 a x (a )(m)1 b
(a )(m) x (a )(m)1 b
x (a )(m)1 b
(mod m)
(mod m)
(mod m)
(mod 13)
Ale
Std
(mod 13)
wiczenia:
1. Wyznacz warto funkcji Eulera (n), gdy:
(a) n = 127
(b) n = 210
(c) n = 24 33 52
2. Sprawd, e:
(a) 127 dzieli liczb 10126 1
elementy publiczne:
(mod m)
4
25811 = 258 2582 2582 258 26 264
2
258 26 262 258 26 302 258 26 254 7
Zadanie: Zaszyfruj i odszyfruj komunikat a w schemacie RSA o parametrach:
1. a = 2, p = 3, q = 5, m =?, e = 5, f =?
2. a = 7, p = 3, q =?, m = 15, e = 5, f =?
3. a = 11, p = 17, q = 19, m = 323, e = 131, f = 11
+
Typowy scenariusz stosowania algorytmu RSA z kluczem N -bitowym, m IN
bitowym (np. N = 512)
Kroki nadawcy:
1. Wybierz losowo a < m wzgldnie pierwsze z m i przedstaw a na N
bitach
2. Wylij szyfr RSA r = mod m (ae ) dla a
3. Dla kolejnej N -bitowej porcji d danych szyfrowanych wylij kod d =
a XOR d, gdzie operacja XOR realizowana jest bit po bicie
Kroki odbiorcy:
1. Odbierz r
2. Odszyfruj a = mod m (rf )
3. Dla kolejnej odebranej N -bitowej porcji d zdekoduj d = a XOR d
Poprawno dekodowania:
a XOR d = a XOR (a XOR d) = (a XOR a) XOR d = 0 XOR d = d
106