Część 4

advertisement
WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA
FUNKCJE TWORZĄCE
Nieskończony ciąg liczbowy:
a0, a1, a2, ..., ak, ...
∞
formalnie reprezentujemy szeregiem potęgowym
∑a
k =0
k
xk :
∞
A( x ) = ∑ a k x k - formalne przypisanie ciągowi funkcji analitycznej A(x) (jeśli szereg potęgowy jest
k =0
zbieżny)
A(x) – funkcja tworząca ciągu a0, a1, a2, ..., ak, ...
Definiujemy operacje na szeregach, aby manipulować ciągami:
•
∞
∞
k =0
k =0
∞
A( x ) = ∑ ak x k i B( x ) = ∑ bk x k
dla
definiujemy
A( x ) + B( x ) = ∑ (ak + bk ) x k
dodawanie:
k =0
•
∞
p ⋅ A( x ) = ∑ p ⋅ ak x k
mnożenie przez liczbę:
k =0
•
∞
A( x ) ⋅ B( x ) = ∑ ck x k , gdzie ck = a0 bk + a1 bk−1 + ... + ak b0 =
iloczyn Cauchy’go:
k =0
k
∑a b
i =0
i k −i
;
ciąg c0, c1, c2, ..., ck, ... nazywamy splotem ciągów ak i bk
0
...
b
6
0
...
...
a
0
b
5
a
a
a6
...
4
b
2
5b
1
0
b
4
4b
1
b
a
3
3b
1
...
b
3
0
b
a5
3
a
3
b
2
a
a
2
2b
1
2
b
a
a
2
3
b
2
a4
...
5
a
2
b
4
a
0
a
a
2
a
3
a
4
a3
...
0
b
1
a
1b
1
a
b
1
a
b
1
a
b
1
a
b
b
0
a
2
b
0
0
4
b
0
0
b
5
a
...
6
b
0
...
a
6
c
...
b6
a
4
c
b5
b
3
a
b4
a
2
c
b3
0b
1
0
b2
a
c
b1
a2
1
b0
a1
a
a0
•
jeżeli ak = 0 dla k > n , to funkcja tworząca ciągu jest wielomianem A(x) = a0 + a1x + ... + an xn
•
jeśli szereg
∞
∑a x
k =0
k
k
jest zbieżny w pewnym otoczeniu zera, to jego suma A(x) jest funkcją
analityczną w tym otoczeniu oraz zachodzi
ak =
A( k ) (0)
dla k = 0, 1, 2, ... ; gdzie A(k)(0)
k!
jest wartością k-tej pochodnej funkcji A(x) dla x = 0
∞
szereg
∑a x
k =0
k
k
jest rozwinięciem funkcji A(x) w szereg Maclaurina
MATEMATYKA DYSKRETNA (4)
J.Sikorski
Strona 1 / 4
WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA
∞
∑a x
Utożsamiamy formalną reprezentację ciągu w postaci szeregu
∞
określaną przez ten szereg, np.
∑x
k
=
k =0
k =0
∞
1
1− x
∑
lub
k =0
k
k
z funkcją analityczną A(x)
1 k
x = ex
k!
Przykłady funkcji tworzących dla różnych ciągów
1. ciąg współczynników dwumiennych dla ustalonego n:
n
  ,
0
n
  ,
1
n
  , ...,
2
n
  , 0, 0, ... ; funkcja tworząca:
n
n
n k
n k


x
=
  x = (1 + x ) n
∑
∑
k 
k =0  
k =0  k 
∞
∞
1
2. ciąg: 1, −1, 1, −1, ..., (−1)k, ... ;
funkcja tworząca: ∑ ( −1) k x k = ∑ ( − x ) k =
1+ x
k =0
k =0
∞
∞
1
3. ciąg: 1, 2, 4, 8, ..., 2k, ... ; funkcja tworząca: ∑ 2 k x k = ∑ (2 x ) k =
1 − 2x
k =0
k =0
∞
∞
∞
d
d 1
x
4. ciąg: 0, 1, 2, 3, ... ; funkcja tworząca: ∑ k x k = x ∑ k x k −1 = x
xk = x
=
∑
dx k = 0
dx 1 − x (1 − x ) 2
k =0
k =0
∞
Funkcje tworzące dla liczby podzbiorów k-elementowych
Zbiór
X=
{ a1,
↓
(1 + x) ⋅
a2,
↓
...,
an }
↓
(1 + x) ⋅ ... ⋅ (1 + x) = (1 + x)n =
∞
n
k =0
 
∑  k  x
k
↓
↓
↓
0
1
0
1
(x + x ) ⋅ (x + x ) ⋅... ⋅ (x0 + x1)
podzbiór zbioru X jest wyznaczony przez podanie czy dany element ak ( k = 1, ..., n ) jest w nim
zawarty, czy nie:
x0 = 1
– odpowiada pominięciu danego elementu (zero wystąpień)
1
x =x
– odpowiada wystąpieniu danego elementu (jeden raz)
Podzbiór jest k-elementowy ↔ w k czynnikach wybrano składnik x1
Przykład dla zbioru z powtórzeniami
Z = < 3∗a1,
1∗a2,
2∗a3 >
↓
↓
↓
(1 + x + x2 + x3) ⋅ (1 + x) ⋅ (1 + x + x2) = A(x) =
∞
∑c x
k =0
k
k
ck − liczba podzbiorów k-elementowych zbioru Z ;
A(x) = 1 + 3x + 5x2 + 6x3 + 5x4 + 3x5 + x6
⇒ 1 podzbiór pusty, 3 podzbiory jednoelementowe, 5 podzbiorów dwuelementowych, 6 podzbiorów
trzyelementowych itd.
Przy konstrukcji funkcji tworzącej dla liczby podzbiorów k-elementowych zbioru z
powtórzeniami można nakładać dodatkowe warunki na liczbę wystąpień elementu ai
Przykłady dodatkowych warunków dla zbioru z powtórzeniami
1. element ai musi wystąpić przynajmniej raz:
czynnik odpowiadający elementowi ai − (x + x2 + x3 + ...) =
x
1− x
2. element ai nie występuje lub występuje parzystą liczbę razy:
czynnik odpowiadający elementowi ai − (1 + x2 + x4 + ...) =
MATEMATYKA DYSKRETNA (4)
J.Sikorski
1
1 − x2
Strona 2 / 4
WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA
3. element ai występuje nieparzystą liczbę razy:
x
1 − x2
czynnik odpowiadający elementowi ai − (x + x3 + x5 + ...) =
4. element ai występuje dowolną liczbę razy (brak warunków):
A(x) = (1 + x + x2 + ...) ⋅ ... ⋅ (1 + x + x2 + ...) =
1
1
1
=
⋅ ... ⋅
1− x
1− x
(1 − x) n
Funkcja tworząca dla ciągu liczb Fibonacciego
Równanie rekurencyjne dla liczb Fibonacciego:
z warunkami początkowymi:
daje ciąg liczb
1, 1, 2, 3, 5, 8, 13, 21, ...
Fn+1 = Fn + Fn−1
F0 = F1 = 1
Jak pozbyć się definicji rekurencyjnej?
Funkcja tworząca F(x) dla ciągu liczb Fibonacciego F0, F1, F2, ... spełnia następujące równanie
wynikające z definicji rekurencyjnej:
∞
F(x) =
∑F x
k =0
k
k
∞
= 1 + 1⋅x +
∑ (F
k =2
k −1
∞
∞
k =2
k =2
+ Fk − 2 )x k = 1 + x + x⋅ ∑ Fk −1 x k −1 + x2⋅ ∑ Fk − 2 x k − 2 =
2
= 1 + x + x⋅(F(x) – 1) + x ⋅F(x) ,
1
1 − x − x2
1+ 5
1− 5
W postaci iloczynowej 1 − x − x2 = (1 − a⋅x) (1 − b⋅x) , gdzie a =
i b=
2
2
k +1
k +1
∞
a −b
1
1  a
b 
Zatem F(x) =
=
xk
−

 =∑
(1 − ax )(1 − bx ) a − b  1 − ax 1 − bx  k = 0 a − b
czyli
F(x) = 1 + x + x⋅(F(x) – 1) + x2⋅F(x) = 1 + (x + x2)⋅F(x)
Ostatecznie:
1  1 + 5 


Fk =
5  2 

k +1
1− 5 

− 

 2 
k +1
i stąd
F(x) =

 , dla k = 0, 1, 2, ...

Analogiczne podejście z zastosowaniem funkcji tworzącej można stosować dla innych równań
rekurencyjnych definiujących ciągi szczególnych liczb, w których występują stałe współczynniki:
an = A1⋅an−1 + A2⋅an−2 + ... + Ak⋅an−k dla n ≥ k , gdzie k i A1, A2, ..., Ak są ustalone,
oraz dane są warunki początkowe przez określenie wartości a0, a1, a2, ..., ak-1
ZASADA
WŁĄCZANIA−
−WYŁĄCZANIA
|A∪B|=|A|+|B|−|A∩B|
A
B
|A∪B∪C|=|A|+|B|+|C|−|A∩B|−|A∩C|−|B∩C|+|A∩B∩C|
B
A
C
Dany jest zbiór X i rodzina podzbiorów zbioru X: A1, A2, ..., An
Jak należy wyznaczać
| A1 ∪ A2 ∪ ... ∪ An |
?
MATEMATYKA DYSKRETNA (4)
J.Sikorski
Strona 3 / 4
WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA
+
−
| A1 | + | A2 | + ... + | An |
∑| A ∩ A
i
1≤i < j ≤ n
j
∑| A ∩ A
+
1≤i < j < k ≤ n
−
...
i
|
j
∩ Ak |
...
Twierdzenie (zasada włączania-wyłączania)
n
n
U Ai = ∑| Ai | −
i =1
i =1
∑| A ∩ A
1≤ i < j ≤ n
i
j
|+
∑| A ∩ A
1≤ i < j < k ≤ n
i
j
∩ Ak | − ... + (−1)n−1| A1 ∩ ... ∩ An |
Dowód (indukcja względem n)
Dla n = 1 twierdzenie jest prawdziwe. Załóżmy, że jest prawdziwe dla pewnego n , tzn.
n
n
U Ai = ∑ | Ai | −
i =1
i =1
∑| A ∩ A
1≤ i < j ≤ n
i
j
| + ... + (−1)n−1| A1 ∩ ... ∩ An |
n
UA ∩ A
Dla zbioru
n +1
i
i =1
n
UA ∩A
n +1
i
i =1
n +1
Stąd
n
= ∑ | Ai ∩ An +1 | −
i =1
n
UA = UA ∪ A
i
i =1
n
zachodzi
i
i =1
n +1
=
∑| A ∩ A
1≤ i < j ≤ n
n
UA
i
i =1
i
+ An +1 −
j
∩ An +1 | + ... + (−1)n−1| A1 ∩ ... ∩ An ∩ An+1 |
n
UA ∩ A
i
i =1
+ (−1) | A1 ∩ ... ∩ An ∩ An+1 |
n +1
n +1
= = ∑ | Ai | −
i =1
∑| A ∩ A
1≤ i < j ≤ n +1
i
j
| + ...
!
Przykłady zastosowania zasady włączania-wyłączania
Zbadano 50 samochodów wykonując testy na poziom zawartości trzech grup zanieczyszczeń: NOx,
HC, CO;
1 samochód nie spełnia żadnej z trzech norm, 3 samochody przekroczyły poziom NOx i HC, 2
samochody przekroczyły poziom NOx i CO, 1 samochód przekroczył poziom HC i CO, 6 samochodów
ma zbyt wysoki poziom NOx, 4 samochody maja zbyt wysoki poziom HC a 3 samochody maja zbyt
wysoki poziom CO.
Ile samochodów spełnia wszystkie testowane normy?
A1 – zbiór samochodów o przekroczonym poziomie NOx
A2 – zbiór samochodów o przekroczonym poziomie HC
A3 – zbiór samochodów o przekroczonym poziomie CO
|A1| = 6, |A2| = 4, |A3| = 3
|A1 ∩ A2| = 3,
|A1 ∩ A3| = 2,
|A2 ∩ A2| = 1,
|A1 ∩ A2 ∩ A3| = 1
zbiór samochodów, które nie spełniają co najmniej jednej z norm = A1 ∪ A2 ∪ A3
|A1 ∪ A2 ∪ A3| = 6 + 4 + 3 – 3 – 2 –1 + 1 = 8
| zbiór tych, które spełniają | = 50 – 8 = 42
MATEMATYKA DYSKRETNA (4)
J.Sikorski
Strona 4 / 4
Download