Matematyka dyskretna 1/Wykład 3: Zliczanie zbiorów i funkcji

Z Studia Informatyczne
Wersja z dnia 21:39, 21 sie 2006 autorstwa Arek (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Funkcje

Ten fragment wykładu przypomina poznany już wcześniej materiał. Służy jedynie ustaleniu terminologii i notacji.

Funkcja o dziedzinie X i przeciwdziedzinie Y to dowolna relacja fX×Y taka, że:

  • xX yY  x,yf
  • xX y1,y2Y  (x,y1fx,y2f)y1=y2

Pierwszy warunek mówi, że każdy element dziedziny ma jakąś wartość przypisaną funkcją f. Drugi, że taka wartość jest co najwyżej jedna (dowolne dwie są bowiem równe). W skrócie oba warunki możemy zapisać łącznie jako

xX !yY  x,yf,

gdzie kwantyfikator ! oznacza { istnieje dokładnie jeden}.

  • Ważne jest
    • wykorzystanie wszystkich elementów dziedziny: { każdemu elementowi dziedziny ...}
    • i jednoznaczność: { jest przyporządkowany dokładnie jeden element przeciwdziedziny},
  • nie wyklucza to sytuacji, gdy np. dwóm elementom dziedziny przyporządkowany jest ten sam element przeciwdziedziny,
  • nie każdy element przeciwdziedziny musi być wykorzystany, tzn. mogą istnieć takie elementy przeciwdziedziny, które nie są przyporządkowane żadnemu elementowi dziedziny,
  • dziedzina i przeciwdziedzina mogą być tym samym zbiorem.

Notacja:

  • Piszemy f:XY lub XfY na oznaczenie funkcji o nazwie f, której dziedziną jest zbiór X, a przeciwdziedziną zbiór Y.
    elementy dziedziny nazywamy argumentami funkcji
    elementy przeciwdziedziny im przyporządkowane nazywamy wartościami funkcji
    .
  • Piszemy f(x)=y lub f:xy na oznaczenie tego, że funkcja f elementowi x przyporządkowuje element y
    • mówimy wtedy, że y jest wartością funkcji f na argumencie x.
  • Często podaje się { przepis} na funkcję, wykorzystując
    • operacje arytmetyczne: f(x)=3x+7
    • lub inne powszechnie znane funkcje g(x)=2sin(x)cos(x).
  • W powyższych przykładach dziedziny i przeciwdziedziny można się domyślić (zapewne liczby rzeczywiste), ale dla ścisłości powinno się je podać, np. f:.

Przykłady funkcji

Najczęściej będziemy się zajmowali funkcjami, które działają na liczbach (dziedziną i przeciwdziedziną będą zbiory liczbowe, np. ,), ale można mówić o funkcjach na różnych zbiorach.

  • f:n2n,
    • jest zwartym zapisem, że f jest funkcją postaci f:
      daną przepisem f(n)=2n
    • jako przeciwdziedzinę określiliśmy zbiór liczb naturalnych,
      ale w istocie wartościami tej funkcji są tylko liczby parzyste
  • g:, g(n)=n/2,
    • określenie g: nie byłoby tu prawidłowe, gdyż wartość n/2 nie zawsze jest liczbą naturalną
  • h:{13} , h(n)=13,
    • to też jest poprawnie określona funkcja, mimo że niezbyt frapująca (tzw. funkcja stała)
  • f:, f(n)=(1+3+5+...+(2n+1))n.
    • takie określenie też jest poprawne, choć nie od razu widać, ile to jest
  • g:xsinxπ jest całkiem poprawną funkcją.
  • h:xsinπx,
    • to określenie (mimo, że podobne do poprzedniego) jest błędne:
      nie da się policzyć wartości h(0);
      należałoby więc napisać np. h:{0} 
  • {0,1} *ww1{0,1} *,
    • to funkcja określona na słowach nad alfabetem dwuelementowym {0,1} 
    • każdemu słowu przypisuje to słowo rozszerzone na końcu o symbol 1
  • Parser nie mógł rozpoznać (błąd składni): {\displaystyle d: {\left\{ {0,1} \right\}\ }^* \longrightarrow \mathbb{N}, \ d(w) = \mbox{długość słowa } wParser nie mógł rozpoznać (błąd składni): {\displaystyle }}

Wielomian to funkcja:

xanxn+an1xn1++a2x2+a1x+a0

gdzie

  • liczby an,an1,,a1,a0 zwane są { współczynnikami} wielomianu
    • mówimy więc o wielomianach o współczynnikach
      • naturalnych -- jeśli an,an1,,a1,a0
      • całkowitych -- jeśli an,an1,,a1,a0
      • wymiernych -- jeśli an,an1,,a1,a0
      • rzeczywistych -- jeśli an,an1,,a1,a0
    • liczba n zwana jest stopniem wielomianu, ale tylko o ile an0.

Surjekcje, injekcje i bijekcje

Suriekcja to funkcja f:XY spełniająca warunek

yY xX  f(x)=y
  • Intuicyjnie, funkcja jest surjekcją, jeśli jej cała przeciwdziedzina jest wykorzystana, tzn. każdy jej element jest wartością funkcji dla jakiegoś elementu dziedziny,
  • surjekcje często są nazywane funkcjami "na",
  • piszemy też wtedy f:XY.

Rysunek: Rys. 2.1 Szkic na kartce.

Przykład


Funkcja xx3 jest surjekcją.
Funkcja xx3 nie jest surjekcją.
Funkcja x2x nie jest surjekcją.
Funkcja x2x jest surjekcją.
Funkcja xx jest surjekcją.
Funkcja xx jest surjekcją.
Funkcja xx nie jest suriekcją.
Funkcja xsinx nie jest surjekcją.
Funkcja {0,1} *ww1{0,1} * nie jest suriekcją.
Funkcja {0,1} *wd(w) jest suriekcją.

Injekcja to funkcja f:XY spełniająca warunek:

x1,x2X  x1x2f(x1)f(x2)
  • Intuicyjnie, funkcja jest injekcją, jeśli różnym elementom dziedziny funkcja przyporządkowuje różne elementy przeciwdziedziny,
  • injekcje często są nazywane funkcjami różnowartościowymi,
  • piszemy też wtedy f:XY.

Rysunek: Rys. 2.2 Szkic na kartce.

Przykład

Funkcja xx3 jest injekcją.
Funkcja xx2 nie jest injekcją.
Funkcja xx jest injekcją.
Funkcja xx nie jest injekcją.
Funkcja x2x jest injekcją.
Funkcja x2x jest injekcją.
Funkcja xsinx nie jest injekcją.
Funkcja {0,1} *ww1{0,1} * jest injekcją.
Funkcja {0,1} *wd(w) nie jest injekcją.

Bijekcja to funkcja, która jest jednocześnie surjekcją i injekcją.

Rysunek: Rys. 2.3 Szkic na kartce.

Przykład

Funkcja xx3 jest bijekcją.
Funkcja xx3 nie jest bijekcją.
Funkcja x2x nie jest bijekcją.
Funkcja x2x jest bijekcją.
Funkcja xx jest bijekcją.
Funkcja xx nie jest bijekcją.
Funkcja xx nie jest bijekcją.
Funkcja {0,1} *ww1{0,1} * nie jest bijekcją.
Funkcja {0,1} *wd(w) nie jest bijekcją.

Funkcje odwrotne

Traktując funkcję f:XY jako relację fX×Y (zbiór par), możemy rozważać relację f1 odwrotną do f.

Kiedy ta relacja jest funkcją?

  • ponieważ f1 ma spełniać warunek, że każdy element dziedziny f1 (tzn. zbioru Y) ma przypisaną jakąś wartość, oznacza to, że sama funkcja f wyczerpuje wszystkie elementy przeciwdziedziny, a zatem, że f jest surjekcją,
  • nadto f1 ma przypisywać dokładnie jeden taki element, czyli że każdy element z Y jest przypisany poprzez f jednemu elementowi z X, a zatem f musi być injekcją.

A zatem: funkcja posiada funkcję odwrotną, wtedy i tylko wtedy, gdy jest bijekcją.

  • Nieformalnie tworzenie funkcji odwrotnej polega na odwracaniu strzałek.
  • Gdyby f nie była surjekcją, to przy próbie odwrócenia strzałek niektóre elementy zbioru Y

nie miałyby przyporządkowanego żadnego elementu z X.

  • Gdyby zaś f nie była injekcją, to przy próbie odwrócenia strzałek niektóre strzałki byłyby "rozdwojone".

Przykład

  • Funkcja f:x2x jest bijekcją,

a zatem posiada funkcję odwrotną. Tę funkcję odwrotną można wyliczyć: skoro y=f(x)=2x, to f1(y)=x=y/2. Zatem f1:xx/2.

  • Funkcja xx nie jest injekcją. Nie posiada więc funkcji odwrotnej.
  • Funkcja x2x nie jest surjekcją. Nie posiada więc funkcji odwrotnej. Ale rozważając tę funkcję z przeciwdziedziną będącą zbiorem liczb parzystych, tzn. x2x staje się ona bijekcją i posiada funkcję odwrotną xx/2.
  • Funkcja xx2 nie jest ani injekcją ani surjekcją. Nie posiada więc funkcji odwrotnej. Surjektywność można by "uratować", rozważając
    f:xx2[0,+).
    Wciąż jednak brakowałoby injektywności.

Ograniczając jednak, tę funkcję do liczb nieujemnych, tzn. traktując ją jako:

f|[0,+):[0,+)xx2[0,+),

staje się już bijekcją, więc posiada funkcję odwrotną, którą jest

[0,+)xx[0,+).

Składanie funkcji

Złożenie funkcji f:XY i funkcji g:YZ to funkcja

gf:XZ

określona dla wszystkich argumentów xX jako (gf)(x)=g(f(x)).

  • Nieformalnie -- najpierw obliczamy wartość funkcji f dla elementu x,
    a następnie obliczamy wartość funkcji g dla wyniku tego obliczenia;
    czyli "idziemy dalej wzdłuż następnej strzałki"
    XYZ
  • Piszemy gf (a nie fg) na oznaczenie złożenia, w którym najpierw obliczana jest wartość funkcji f, a potem funkcji g.
  • W praktyce, przy złożeniu gf, dziedzina funkcji g nie musi być tym samym zbiorem, co przeciwdziedzina funkcji f -- wystarczy, by była większa.

Przykład

  • Niech f:nn+2 i g:n3n.

Wówczas dla gf: mamy (gf)(n)=g(f(n))=g(n+2)=3(n+2)=3n+6 a dla fg: mamy (fg)(n)=f(g(n))=f(3n)=3n+2.
Morał: złożenia fg i gf to (na ogół) różne funkcje.

  • Niech f:xsin3x

i g:x(x+π)2. Wówczas złożenie fg: dane jest wzorem

(fg)(x)=f(g(x))=f((x+π)2)=sin(3(x+π)2).

Morał: Nie zawsze da się łatwo wyliczyć przepis na funkcję złożoną.

  • Gdy f:XY jest bijekcją,

to istnieje funkcja odwrotna f1:YX. Jeśli złożymy f1f, to uzyskamy funkcję XX, która "nic nie robi":

(f1f)(x)=f1(f(x))=x.

Taka funkcja zwana jest identycznością na zbiorze X i oznaczana idX.
Podobnie -- składając ff1:YY, otrzymamy identyczność na zbiorze Y.

Widzieliśmy, że nie zawsze fg=gf.

Obserwacja

Dla funkcji XhYgZfW zachodzi f(gh)=(fg)h.

Obserwacja

Nadto dla XfYgZ mamy:

  • Jeśli f,g są surjekcjami, to gf jest surjekcją.
  • Jeśli f,g są injekcjami, to gf jest injekcją.
  • Jeśli f,g są bijekcjami, to gf jest bijekcją.

Pierwsza i trzecia z powyższych własności nie zachodzą, jeśli dziedzina funkcji g jest większa niż przeciwdziedzina funkcji f.

Przykład

Zbadaj czy dla funkcji XfYgZ zachodzi:

  • jeśli gf jest surjekcją, to f jest surjekcją
  • jeśli gf jest surjekcją, to g jest surjekcją
  • jeśli gf jest injekcją, to f jest injekcją
  • jeśli gf jest injekcją, to g jest injekcją

Funkcje wielu zmiennych

  • Funkcja dwóch zmiennych to funkcja, której dziedziną jest zbiór par (zamiast pojedynczych elementów).
  • Piszemy np. f:X×YZ.
  • Zatem funkcja taka każdej parze (x,y)X×Y przyporządkowuje dokładnie jeden element f(x,y)Z.
  • Podobnie można zdefiniować funkcje trzech i więcej zmiennych.

Przykład

Przykładem funkcji dwóch zmiennych są działania arytmetyczne:

  • ×(x,y)x+y
  • ×(x,y)xy
  • ×(x,y)xy
  • ×{0} (x,y)xy
  • ×(x,y)xy

a także konkatenacja (sklejenie) słów

  • X*×X*(v,w)vwX*,

gdzie vw oznacza słowo (krotkę) powstałe z doklejenia słowa w na końcu słowa v.

Zliczanie zbiorów

Gdy chcemy policzyć liczbę samochodów na parkingu zazwyczaj wskazujemy na kolejne samochody odliczając: jeden, dwa, trzy, itd., aż do momentu gdy każdy samochód zostanie wskazany. Wtedy ostatnia liczba, którą wypowiedzieliśmy jest uważana za liczbę samochodów na parkingu.

Rysunek: 2.4 Zdjęcie samochodów na parkingu. Samochody są ponumerowane liczbami tak jakby ktoś je zliczał.

Aby wprowadzić matematyczny model procedury zliczania definiujemy początkowe odcinki liczb naturalnych:

Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \aligned \mathbb{Z}_0&=&\emptyset,\\ \mathbb{Z}_1&=&{\left\{ {0} \right\}\ },\\ \mathbb{Z}_2&=&{\left\{ {0,1} \right\}\ },\\ &\vdots&\\ \mathbb{Z}_k&=&{\left\{ {0,\ldots,k-1} \right\}\ }. \endaligned}

Załóżmy, że na parkingu stoi n samochodów. Zliczając je wybieramy elementy n (zazwyczaj kolejne liczby) i przypisujemy je do samochodów na parkingu. Uwaga: wybierając liczby z n zaczynamy od 0 i kończymy na n1 (na ogół nie-informatycy zliczają od 1 do n). Określamy zatem w trakcie tego zliczania bijekcję f:nS, gdzie S jest zbiorem samochodów na parkingu. W istocie jest to bijekcja, bo dwa różne samochody mają różne numery (injektywność) i każdy samochód jest policzony (surjektywność).

Obserwacja

Gdy m<n, to nie istnieje injekcja z n w m.

Dowód

Niech S będzie zbiorem liczb naturalnych n takich, że istnieje injekcja postaci f:mn, przy pewnym m<n. Oczywiście 0S, bo nie istnieje liczba naturalna m taka, że 0m<0. Także 1S, bo nie istnieje funkcja z niepustego zbioru 1 w pusty 0. Dla dowodu niewprost załóżmy, że S jest niepusty. Wtedy, z Zasady Minimum, S ma element najmniejszy, powiedzmy n0>1. Istnieje zatem m<n0 i injekcja f:n0m. Analogicznie jak wcześniej m0 oraz m1, bo inaczej wszystkie elementy Nn0 musiałyby mieć tę samą wartość, co stoi w sprzeczności z injektywnością f. Zatem m1 jest dodatnią liczbą naturalną.

Jeśli m1f({0,,n02} ), to restrykcja f|n01 jest injekcją z n01 w m1, czyli n01S co stoi w sprzeczności z minimalnością n0 w S.

Jeśli m1f({0,,n02} ), to niech a i b będą takimi liczbami, że f(a)=m1 i f(n01)=b.

Rysunek: Rys 2.5 Szkic na kartce.

Wtedy funkcja g: Nn01m1 zadana przez

Parser nie mógł rozpoznać (nieznana funkcja „\begin{array}”): {\displaystyle g(x)= \left\{ \begin{array} {cl} f(x),& \textrm{dla } x\neq a \\ b,& \textrm{dla } x=aParser nie mógł rozpoznać (błąd składni): {\displaystyle } \end{array} \right. }

jest injekcją, bo dla x1,x2n01{a}  zachodzi g(x1)=g(x2)x1=x2 i dodatkowo bg(n0{a} )=f(n0{a} ). Zatem znów n01S, co stoi w sprzeczności z minimalnością n0 w S.

Wniosek

Jeśli istnieje bijekcja ze zbioru m na n, to m=n.

Zbiór skończony to zbiór bijektywny z pewnym zbiorem postaci n.

Zbiór nieskończony to zbiór, który nie jest skończony.

Jeśli X jest zbiorem skończonym, to Wniosek Uzupelnic bijekcja Nm Nm| gwarantuje nam, że X jest bijektywny z dokładnie jednym zbiorem postaci n. Rozważając skończony zbiór n-elementowy X, często używamy notacji X={x0,x1,,xn1}  ukrywającej w sobie bijekcję postaci nX.

Liczba elementów skończonego zbioru X, to jedyna liczba naturalna n taka, że istnieje bijekcja z n w X. Liczbę te oznaczamy przez Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertX\right\vert} .

Przykład

Oczywiście |n|=n. W szczególności zbiór pusty ma, zgodnie z intuicją, liczbę elementów równą 0.

Przykład

Zbiór liczb parzystych jest nieskończony.

Dla dowodu niewprost załóżmy, że ||=k, tzn. ={p0,,pk1} . Oczywiście , bo 0. Nadto suma wszystkich pi jest ograniczeniem zbioru , a więc, z Zasady Maksimum, posiada element największy, powiedzmy p0. Ponieważ p0 jest największą liczbą parzystą, p0+2, co oczywiście daje sprzeczność.

Obserwacja

Zbiór X jest nieskończony wtedy i tylko wtedy, gdy istnieje injekcja z w X.

Dowód

Załóżmy, że X jest nieskończony i zdefiniujmy indukcyjnie funkcję f:X, kładąc:

  1. niech f(0) będzie dowolnym, wybranym elementem X,
  2. gdy f(0),,f(n) są już określone, wtedy niech f(n+1) będzie dowolnie wybranym elementem z X{f(0),,f(n)} .

To, że wyboru opisanego w punkcie drugim możemy zawsze dokonać, wynika wprost z nieskończoności zbioru X. Istotnie, gdyby zbiór X{f(0),,f(n)}  był pusty, to f byłoby bijekcją n+1X świadczącą o tym, że X jest skończony. Oczywiście, tak zdefiniowana funkcja f:X jest injekcją.

Dla dowodu implikacji odwrotnej załóżmy, że istnieje injekcja f:X oraz że X jest skończony tzn. że istnieje bijekcja g:nX dla pewnego n. Zauważmy, że restrykcja f|n+1 jest również injekcją. A zatem złożenie g1f|n+1 jest injekcją z n+1 w n, co stoi w sprzeczności z Obserwacją Uzupelnic obserwacja - nie ma injekcji z m do n|.

Zbiór przeliczalny to zbiór skończony lub bijektywny z .

Przykład

  • zbiór pusty jest przeliczalny, bo jest skończony,
  • zbiór liczb parzystych jest przeliczalny, bo f(x)=2x jest bijekcją
  • zbiór liczb całkowitych jest przeliczalny, bo
    f(x)={x2,dlaparzystychx,1x2,dlanieparzystychx,

jest bijekcją z w .

Zasada Szufladkowa

Wróćmy jeszcze do Obserwacji Uzupelnic obserwacja - nie ma injekcji z m do n| -- formalnej podstawy zliczania skończonych zbiorów. Ma ona także bardziej praktyczną interpretację. Jest to formalne ujęcie faktu powszechnie znanego jako Zasada Szufladkowa Dirichleta (wierzy się, że jako pierwszy opisał ja Dirichlet w 1834).

Wniosek

[Zasada Szufladkowa Dirichleta] Jeśli n obiektów jest rozmieszczonych w m szufladach i n>m, to istnieje szuflada z przynajmniej dwoma obiektami.

Rysunek: Rys. 2.6 Szkic i omówienie na kartce.

Dowód

Zbiór obiektów jest bijektywny ze zbiorem n, zaś zbiór szuflad z m. Rozmieszczenie obiektów w szufladach to określenie funkcji z n w m. Ponieważ n>m to Obserwacja Uzupelnic obserwacja - nie ma injekcji z m do n| mówi nam, ze funkcja ta nie jest injekcją, a zatem lokuje co najmniej dwa obiekty w tej samej szufladzie.

Przykład

Proste przykłady:

  • Wśród mieszkańców Krakowa co najmniej dwie osoby mają tę samą liczbę włosów na głowie.

Dowód

Rzeczywiście, liczba włosów na głowie człowieka nie przekracza 500000, natomiast liczba mieszkańców Krakowa przekracza 800000. Weźmy 500000 szufladek ponumerowanych kolejnymi liczbami naturalnymi od 0 do 499999 i wkładajmy do szufladki o danym numerze osoby, które mają taką liczbę włosów na głowie, jak numer szufladki. Ponieważ osób jest 800000, a szufladek 500000, z Zasady Szufladkowej wynika, że w jednej szufladce muszą znaleźć się co najmniej dwie osoby.

  • W grupie 13 osób muszą być co najmniej dwie,

które urodziły się w tym samym miesiącu.

Dowód

Weźmy 12 szufladek z nazwami miesięcy i wkładajmy do nich osoby, które urodziły się w danym miesiącu. Ponieważ osób jest 13, a szufladek 12, w jednej z nich muszą być co najmniej dwie osoby.

Czasem, umiejętnie dobierając "pudełka" można pokazać bardziej zaskakujące fakty...

Przykład

Pewna grupa osób wita się podając sobie ręce. Nikt nie wita się z samym sobą i żadna para osób nie wita się podwójnie. Czy muszą być dwie osoby, które witały taką samą liczbę osób?

  • Gdy jest n osób, to każda z nich przywita 0 lub 1 lub 2 lub ... n1 osób.
  • Utwórzmy więc n szuflad z etykietami k=0,1,2,,n1
    i umieśćmy osobę w szufladzie o etykiecie k, jeśli witała się z dokładnie k osobami.
  • Skoro jest n osób i n szuflad, to ...
    { niewiele z tego wynika  :-(}
  • Ale... niewiele wynika tylko jeśli wszystkie szuflady będą zajęte,
    a tak jest w przypadku, gdy również dwa konkretne pudełka o etykietach 0 i n1 są zajęte. Tyle, że nie jest to możliwe -- nie może być osoby,

która przywitała wszystkie pozostałe i równocześnie takiej, która nie przywitała nikogo.

  • A zatem n osób zajęło co najwyżej n1 szuflad,

więc w jednej z nich są co najmniej dwie osoby -- takie, które przywitały tę samą liczbę osób.

Przykład

Wybierając n+1 liczb spośród 1,2,3,,2n, wśród wybranych liczb zawsze znajdziemy dwie, z których jedna dzieli drugą.

Istotnie:

  • Określmy relacje xRy na liczbach naturalnych, tak by:
Parser nie mógł rozpoznać (błąd składni): {\displaystyle xRy \ \ \Leftrightarrow \ \ \mbox{iloraz } {x}{y}Parser nie mógł rozpoznać (błąd składni): {\displaystyle jest potęgą (być może ujemną) liczby } 2Parser nie mógł rozpoznać (błąd składni): {\displaystyle .} }

Oznacza to, że xRy jeśli liczby x,y mają ten sam największy czynnik nieparzysty.

  • Szufladami niech będą klasy równoważności relacji R.
  • Ile jest klas-szuflad dla liczb ze zbioru {1,2,3,,2n} ?

Co najwyżej n, gdyż tyle może być liczb nieparzystych w zbiorze {1,2,...,2n} .

  • Skoro wybrano n+1, to rozkładając je do naszych szuflad jakieś dwie,

powiedzmy a,b muszą trafić do wspólnej szuflady.
Oznacza to, że któryś z ilorazów ab,ba jest dodatnią potęgą dwójki, a zatem a dzieli b lub b dzieli a.

Przykład

Wybierzmy dowolnie 10 różnych liczb naturalnych a1,a2,,a10 spośród 1,2,3,,100. Pokażemy, że w zbiorze {a1,a2,,a10}  można wybrać dwa rozłączne podzbiory, dające tę samą sumę.

Istotnie:

  • Szuflady poetykietujmy liczbami reprezentującymi możliwe sumy liczb

w co najwyżej 10-cio elementowych podzbiorach zbioru {1,2,3,,100} .
Ponieważ największa możliwa taka suma to 91+92+93++99+100=955, to mamy 955 szuflad z etykietami: 0,1,2,3,,955

  • z drugiej strony 10-cio elementowy zbiór {a1,a2,,a10} 

ma 210=1024 podzbiory, więc muszą być dwa podzbiory zbioru {a1,a2,,a10}  o tej samej sumie.

  • Te dwa podzbiory nie muszą być rozłączne.

Ale jeśli z obu z nich usuniemy wspólne liczby, to pozostałe dalej będą dawać takie same sumy, a powstałe zbiory będą już rozłączne.

Zasady zliczania

Bardzo często w tym kursie będziemy stać przed problemem zliczenia pewnego skończonego zbioru obiektów. Skrajnie niewygodne i nieefektywne byłoby, gdybyśmy za każdym razem konstruowali bijekcję z n w nasz zbiór dla pewnego naturalnego n. Na szczęście istnieje wiele reguł pozwalających szybciej zliczać obiekty kombinatoryczne. Poniżej przedstawiamy te podstawowe. Pierwsza z nich jest bardzo prosta i w sposób intuicyjny stosowana od początków cywilizacji.

Zasada dodawania

Dla skończonych i rozłącznych zbiorów A i B mamy:

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertA\cup B\right\vert=\left\vertA\right\vert+\left\vertB\right\vert. }

Dowód

Niech liczności zbiorów Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertA\right\vert=m} , Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertB\right\vert=n} będą poświadczone bijekcjami f:mA i g:nB. Wtedy funkcja h:m+nAB zadana przez:

h(x)={f(x),dlax{0,,m1} g(xm),dlax{m,,m+n1} 

jest bijekcją. Istotnie, skoro zbiory A i B są rozłączne, to dla dowolnych x1{0,,m1} , x2{m,,m+n1}  zachodzi h(x1)h(x2). Ponadto restrykcje h do zbiorów zbiorów {0,,m1}  i {m,,m+n1}  są injekcjami. A zatem h jest injekcją.

Dla dowodu surjektywności h weźmy dowolny element yAB. Załóżmy, że yA (w drugim przypadku dowód przebiega analogicznie). Wtedy z surjektywności f wiemy, że istnieje xm takie, że f(x)=y. Ale h(x)=f(x)=y. Zatem h jest surjekcją.

Łatwy dowód indukcyjny pozwala uogólnić zasadę dodawania na dowolnie wiele skończonych zbiorów.

Wniosek

Dla zbiorów A1,,An skończonych i parami rozłącznych:

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertA_1\cup\ldots\cup A_n\right\vert=\left\vertA_1\right\vert+\ldots+\left\vertA_n\right\vert. }

Więcej pracy wymaga analiza sytuacji, gdy zbiory A,B nie są rozłączne.

Zasada włączania i wyłączania

Dla zbiorów skończonych {A1,A2,,An}  zachodzi

Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \aligned &&\left\vertA_1\cup A_2\cup\ldots\cup A_n\right\vert\ =\ \sum_{I\subseteq{\left\{ {1,\ldots,n} \right\}\ }}\left(-1\right)^{\left\vertI\right\vert+1}\left\vert\bigcap_{i\in I}A_i\right\vert\\ &&\begin{array} {lr} = \left\vertA_1\right\vert+\left\vertA_2\right\vert+\left\vertA_3\right\vert+\ldots\quad&+\left\vertA_{n-2}\right\vert+\left\vertA_{n-1}\right\vert+\left\vertA_n\right\vert\\ -\left\vertA_1\cap A_2\right\vert-\left\vertA_1\cap A_3\right\vert-\ldots&-\left\vertA_{n-2}\cap A_n\right\vert-\left\vertA_{n-1}\cap A_n\right\vert\\ +\left\vertA_1\cap A_2 \cap A_3\right\vert+\ldots&+\left\vertA_{n-2}\cap A_{n-1} \cap A_n\right\vert\\ -\left\vertA_1\cap A_2 \cap A_3\cap A_4\right\vert-\ldots&-\left\vertA_{n-3}\cap A_{n-2}\cap A_{n-1} \cap A_n\right\vert\\ +\ldots&\\ \left(-1\right)^{n+1}\left\vertA_1\cap A_2\cap\ldots\cap A_n\right\vert& \end{array} \endaligned}

W szczególności, Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertA\cup B\right\vert=\left\vertA\right\vert+\left\vertB\right\vert-\left\vertA\cap B\right\vert} , o ile tylko A,B są skończone.

Dowód

Zaczniemy od dowodu drugiego zdania. Ponieważ trzy zbiory AB,AB i BA są parami rozłączne i sumują się do (AB)(AB)(BA)=AB, na mocy Wniosku Uzupelnic wniosek - moc sumy wielu zbiorow| mamy:

|AB|=|(AB)(AB)(BA)|=|AB|+|AB|+|BA|

skąd

Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \aligned |A \cup B| + |A \cap B| & = & |A - B| + |A\cap B| + |B- A| + |A\cap B| \\ & = & (|A - B| + |A\cap B|) + (|B- A| + |A\cap B|) \\ & = & |(A - B) \cup (A\cap B)| + |(B- A) \cup (A\cap B)| \\ & = & |A| + |B| \endaligned}

skąd już natychmiast dostajemy:

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertA\cup B\right\vert=\left\vertA\right\vert+\left\vertB\right\vert-\left\vertA\cap B\right\vert. }

W sytuacji dowolnie wielu n zbiorów użyjemy rozumowania indukcyjnego. Oczywiście n=1,2 twierdzenie jest prawdziwe. Załóżmy, że n>2. Na mocy równości (Uzupelnic suma-zb|) otrzymujemy:

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vert\bigcup_{k=1}^nA_k\right\vert\ =\ \left\vert\bigcup_{k=1}^{n-1}A_k\right\vert+\left\vertA_n\right\vert-\left\vert\bigcup_{k=1}^{n-1}A_k\cap A_n\right\vert. }

Wykorzystując założenie indukcyjne dla wartości n1 zachodzi

Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \aligned \left\vert\bigcup_{k=1}^nA_k\right\vert&=&\sum_{I\subseteq{\left\{ {1,\ldots,n-1} \right\}\ }}\left(-1\right)^{\left\vertI\right\vert+1}\left\vert\bigcap_{i\in I}A_i\right\vert+\left\vertA_n\right\vert-\sum_{I\subseteq{\left\{ {1,\ldots,n-1} \right\}\ }}\left(-1\right)^{\left\vertI\right\vert+1}\left\vert\bigcap_{i\in I}A_i\cap A_n\right\vert\\ &=&\sum_{I\subseteq{\left\{ {1,\ldots,n-1} \right\}\ }}\left(-1\right)^{\left\vertI\right\vert+1}\left\vert\bigcap_{i\in I}A_i\right\vert+\sum_{I\subseteq{\left\{ {1,\ldots,n-1} \right\}\ }}\left(-1\right)^{\left\vertI\cup{\left\{ {n} \right\}\ }\right\vert+1}\left\vert\bigcap_{i\in I\cup{\left\{ {n} \right\}\ }}A_i\right\vert. \endaligned}

Rodzina wszystkich podzbiorów I zbioru liczb {1,,n}  można podzielić na dwie rozłączne rodziny:

  • pierwsza składa się z tych I, które nie zawierają n, czyli

{I:I{1,,n1} } ,

  • druga jest rodziną tych I, które zawierają n, czyli

{I{n} :I{1,,n1} } .

W rezultacie otrzymujemy, że

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vert\bigcup_{k=1}^nA_k\right\vert\ =\ \sum_{I\subseteq{\left\{ {1,\ldots,n} \right\}\ }}\left(-1\right)^{\left\vertI\right\vert+1}\left\vert\bigcap_{i\in I}A_i\right\vert, }

co kończy dowód.

Wniosek Uzupelnic wniosek - moc sumy wielu zbiorow| pozwala uogólnić Zasadę Szufladkową. Załóżmy, że pewna ilość obiektów jest rozmieszczona w n szufladach. Niech Ai będzie zbiorem obiektów w i-tej szufladce. Ponieważ zbiory obiektów w różnych szufladach są rozłączne, to ilość obiektów we wszystkich szufladach wynosi Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertA_1\cup\ldots\cup A_n\right\vert=\left\vertA_1\right\vert\cup\ldots\cup\left\vertA_n\right\vert} . Zatem jeśli każda szufladka ma co najwyżej r obiektów, to w sumie jest co najwyżej nr obiektów.

Uogólniona Zasada Szufladkowa

Jeśli m obiektów rozmieszczonych jest w n szufladach i m>nr, dla pewnego naturalnego r, to istnieje szufladka z co najmniej r+1 obiektami.

Przypomnijmy, że iloczyn kartezjański (produkt) zbiorów X i Y to zbiór

X×Y={(x,y):xX,yY} .

Zasada Mnożenia

Dla skończonych zbiorów X,Y:

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertX\times Y\right\vert=\left\vertX\right\vert\cdot\left\vertY\right\vert. }

Dowód

Najpierw pokażemy, że |m×n|=mn. W tym celu pokażemy, że funkcja

f:m×n(i,j)in+jmn

jest bijekcją.

Dla dowodu injektywności załóżmy, że f(i,j)=f(i,j), czyli in+j=in+j. Bez straty ogólności możemy założyć, że ii, wtedy (ii)n=jj. Lewa strona równości jest wielokrotnością n, zaś prawa leży w zbiorze {n+1,,n1} , gdyż j,jn. Ponieważ 0 jest jedyną wielokrotnością liczby n w tym zbiorze, to ii=0 i jj=0, co dowodzi injektywności f.

Dla dowodu surjektywności rozważmy ymn. Niech i będzie największą liczbą taką, że iny. Wtedy y<(i+1)n zatem istnieje j{0,,n1}  takie, że y=in+j=f(i,j), co było do udowodnienia.

Załóżmy teraz, że Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertX\right\vert=m} i Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertY\right\vert=n} . Wtedy, z poczynionej wyżej obserwacji, dowód Zasady Mnożenia jest natychmiastowy, gdyż

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertX\times Y\right\vert=\left\vert\mathbb{Z}_m\times \mathbb{Z}_n\right\vert=m\cdot n=\left\vertX\right\vert\cdot\left\vertY\right\vert. }

Przykład

Rozważ turniej rycerski między bractwem czerwonych a bractwem niebieskich. Bractwo czerwonych ma 12 rycerzy, bractwo niebieskich 15. Ile różnych indywidualnych pojedynków może być stoczonych, jeśli rycerze z tego samego bractwa nigdy ze sobą nie walczą?

  • Niech C i N będą zbiorami rycerzy, odpowiednio

z bractwa czerwonych i z bractwa niebieskich,

  • każdy pojedynek może być interpretowany jako uporządkowana para (c,n),

gdzie cC, nN. Zatem liczba pojedynków to liczność zbioru C×N.

  • Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertC\times N\right\vert=\left\vertC\right\vert\cdot\left\vertN\right\vert=12\cdot15=300} .

Zliczanie podzbiorów

Zbiór potegowy, lub inaczej zbiór podzbiorów, zbioru X oznaczamy przez 𝒫(X).

Przykład

  • 𝒫()={}  i |𝒫()|=1
  • 𝒫({} )={,{} }  i |𝒫({} )|=2

Przykład

Ile podzbiorów ma skończony zbiór n--elementowy?
Łatwo jest odpowiedzieć na to pytanie dla małych liczb n. Np. zbiór {a,b}  ma następujące cztery podzbiory:

,{a} ,{b} ,{a,b} 

a zbiór trzyelementowy {a,b,c}  ma osiem podzbiorów:

,{a} ,{b} ,{c} ,{a,b} ,{a,c} ,{b,c} ,{a,b,c} 

Spróbujmy odpowiedzieć na to pytanie w ogólnej sytuacji i w sposób rekurencyjny. Niech pn oznacza liczbę podzbiorów zbioru n--elementowego. Na podstawie dotychczasowych przykładów mamy:

{

Obserwacja

Dla dowolnego, skończonego zbioru X

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vert\mathcal{P}(X)\right\vert=2^{\left\vertX\right\vert}. }

Zliczanie funkcji

Zbiór funkcji postaci XY oznaczamy przez YX.

Obserwacja

Dla skończonych zbiorów X,Y mamy:

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertY^X\right\vert=\left\vertY\right\vert^{\left\vertX\right\vert}. }

Dowód

Niech X={x0,,xm1}  oraz Y={y0,,yn1} . Każda funkcja f:XY to krotka wartości dla kolejnych xi:

(f(x0),f(x1),,f(xm1))Y××Ym razy.

A więc zbiór funkcji z X w Y jest równoliczny z Ym. Z Zasady Mnożenia otrzymujemy więc:

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \vert\underbrace{Y\times\ldots\times Y}_{m\ razy}\vert =\underbrace{\left\vertY\right\vert\times\ldots\times\left\vertY\right\vert}_{m\ razy} =n^m= \left\vertY\right\vert^{\left\vertX\right\vert}. }

Przykład

Trzech kolegów: Bartek, Paweł i Piotrek spotkali się w pubie tuż po zdanym egzaminie z matematyki dyskretnej. Okazało się, że jest pięć marek piwa do wyboru. Na ile sposobów mogą oni wypić pierwszą kolejkę?

Każdy wybór marki piwa przez wszystkie 3 osoby możemy interpretować jako funkcję ze zbioru Parser nie mógł rozpoznać (błąd składni): {\displaystyle {\left\{ {\textrm{Bartek},\textrm{Paweł},\textrm{Piotrek}} \right\}\ }} w pięcioelementowy zbiór marek piwa. A więc istnieje 53=125 sposobów spożycia pierwszej kolejki. I tyleż sposobów dla każdej nastepnej......

Przykład

Kod PIN jest kodem autoryzującym właściciela karty bankomatowej. Składa się on z 4 cyfr dziesiętnych. Ile jest różnych kodów PIN?

Każdy kod PIN to funkcja z czteroelementowego zbioru pozycji {0,1,2,3}  w dziesięcioelementowy zbiór cyfr {0,1,,9} . Z Obserwacji Uzupelnic obserwacja - zliczanie funkcji| wynika że kodów PIN jest dokładnie 104=10000.

Posługując się Obserwacją Uzupelnic obserwacja - zliczanie funkcji| udowodnimy jeszcze raz wzór na ilość podzbiorów skończonego zbioru. Zatem Obserwację Uzupelnic obserwacja - zliczanie funkcji| możemy traktować jako uogólnienie Obserwacji Uzupelnic obserwacja - liczba podzbiorów|.

Dowód

{Alternatywny dowód Obserwacji Uzupelnic obserwacja - liczba podzbiorów|.}
Zauważmy, że dowolny podzbiór AX wyznacza jednoznacznie funkcję χA:X2 w następujący sposób:

χY(x)={0,dlaxXA1,dlaxA

Również każda funkcja f:X2 wyznacza jednoznacznie podzbiór Af{xX:f(x)=1}  zbioru X. Nadto, odpowiedniość

𝒫(X)AχA2X

jest bijektywna. Zatem Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vert\mathcal{P}(X)\right\vert=\left\vert\mathbb{Z}_2^X\right\vert =2^{\left\vertX\right\vert}} .

Obserwacja

Liczba injekcji ze zbioru skończonego X w zbiór skończony Y wynosi:

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertY\right\vert(\left\vertY\right\vert-1)\cdot\ldots\cdot(\left\vertY\right\vert-\left\vertX\right\vert+1)= \frac{\left\vertY\right\vert!}{(\left\vertY\right\vert-\left\vertX\right\vert)!}. }

Dowód

Niech X={x0,,xm1}  i Y={y0,,yn1} . Każdą injekcję z X w Y możemy utożsamić z uporządkowanym wyborem m różnych elementów ze zbioru Y:

f(x0),f(x1),,f(xm1).

Pierwszy element możemy wybrać na n sposobów, drugi na n1, bo musi być różny od poprzednio wybranego, trzeci już tylko na n2 sposoby, itd., aż wreszcie m-ty na nm+1 sposobów. Zatem liczba injekcji równa jest n(n1)(nm+1).

Przykład

Ile jest PIN-ów, czyli cztero-elementowych słów złożonych z cyfr dziesiętnych, takich że żadna cyfra się nie powtarza?

Każdy PIN z niepowtarzającymi się cyframi to injekcja z cztero-elementowego zbioru pozycji {0,1,2,3}  w 10-elementowy zbiór cyfr {0,1,,9} . Zatem jest ich dokładnie 10987=5040.

Obserwacja

Liczba bijekcji pomiędzy skończonymi zbiorami X i Y, gdzie Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertX\right\vert=\left\vertY\right\vert} wynosi Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertX\right\vert!. }

Dowód

Pokażemy najpierw, że każda injekcja f:XY jest bijekcją. Istotnie, gdyby f nie było surjekcją, to f(X) byłoby właściwym podzbiorem zbioru Y. A zatem Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertf(X)\right\vert < \left\vertY\right\vert} i funkcja f:Xf(X) ustalałaby injekcję ze zbioru o większej liczbie elementów w zbiór o mniej liczny. A to nie jest możliwe na mocy Obserwacji Uzupelnic obserwacja - nie ma injekcji z m do n|. Udowodniliśmy, że liczba bijekcji z X w Y równa jest liczbie injekcji z X w Y, czyli, z Obserwacji Uzupelnic obserwacja - zliczanie injekcji|), wynosi ona:

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

Zauważmy jeszcze, że × jest nie tylko funkcją :, ale i bijekcją i jest to jedyna bijekcja .

Przykład

Na kurs tańca uczęszcza pięciu chłopaków i pięć dziewcząt. Większość kroków tanecznych ćwiczy się parami. Dla urozmaicenia pary często się zmieniają. Na ile sposobów może być wykonany jeden taniec?

Niech C będzie zbiorem chłopaków, a D zbiorem dziewcząt. Matematycznym modelem doboru par do tańca jest bijekcja f:CD. Zatem możliwych wyborów jest tyle samo co bijekcji pomiędzy 5-elementowymi zbiorami, czyli 5!=54321=120.

Permutacje

Permutacja zbioru skończonego X to bijekcja z X w X.

Zbiór permutacji zbioru n oznaczamy przez Sn, a permutacje bedziemy w tym kursie oznaczać małymi literami greckimi.

Przykład

Rozważ funkcję α:77 zadaną przez poniższą tabelę:

n0123456α(n)2360415

Funkcja α jest bijekcją z 7 w 7, zatem jest permutacją i αS7.

Przykład

Dla permutacji α,βS5 zadanych przez poniższą tabelę:

n01234α(n)42301β(n)23140

ich złożenia podane są poniżej:

n01234βα(n)01423αβ(n)30214

Zauważ, że oba złożenia także są permutacjami 5.

Ponieważ permutacje są bijekcjami, to natychmiast z Obserwacji Uzupelnic obs-zlozenia| dostajemy:

Obserwacja

Dla dowolnych permutacji α,β skończonego zbioru X:

  • αβ,βα są permutacjami X,
  • α1 jest permutacją X taką,

że αα1=idX=α1α=.

Następne spostrzeżenie jest natychmiastowym wnioskiem z Obserwacji Uzupelnic obserwacja - zliczanie bijekcji|.

Wniosek

Zbiór n-elementowy ma dokładnie n! permutacji, Parser nie mógł rozpoznać (błąd składni): {\displaystyle \left\vertS_n\right\vert=n!} .

Przykład

Oto wszystkie (3!=6) permutacje zbioru S3:

012012012012021102012012012102201210

Permutację α zbioru X={x0,,xn1}  wygodnie jest identyfikować z krotką (α(x0),,α(xn1))Xn. Często też permutację interpretuje się jako uporządkowanie zbioru X.

Przykład

Na ile sposobów można poukładać koło siebie na półce 7 książek?

Rysunek: 2.7 Rysunek bądź zdjęcie siedmiu książek na półce.

Na dokładnie tyle, ile jest permutacji zbioru siedmio-elementowego, a więc 7!=5040.

Cykl zbioru n-elementowego X to taka permutacja zbioru X, dla której {x,α(x),α2(x),,αn1(x)} =X, przy dowolnym xX. Łatwo zauważyć, że jeśli dla pewnego x0X mamy {x,α(x),α2(x),,αn1(x)} =X, to jest tak dla wszystkich xX, czyli α jest cyklem na X. Cykl α zbioru X zapisujemy jako (x,α(x),,αn1(x)) dla dowolnie wybranego xX.

Przykład

Rozważmy αS6 daną przez

n012345α(n)350124
  • sekwencja 0, α(0)=3, α2(0)=1, α3(0)=5, α4(0)=4, α5(0)=2 pokwywa całe 6,
  • zatem α=(0,3,1,5,4,2) jest cyklem.

Rysunek: 2.8 Szkic na kartce.

1 {Rozkład permutacji na rozłączne cykle.}

Dowolną permutację α zbioru X można rozłożyć na rozłączne cykle w sposób następujący:

  1. wybierz dowolny element xX, który nie jest jeszcze w żadnym cyklu,
  1. iteruj permutację α otrzymując kolejno:

α(x),α2(x),α3(x), aż do uzyskania αj(x)=x,

  1. dodaj do rozkładu cykl x,,αj1(x),
  1. jeśli w zbiorze X pozostały jeszcze elementy niepokryte przez żaden cykl,

to wróć do pierwszego punktu.

Dowód

Dla dowodu poprawności algorytmu rozkładu pokażemy najpierw, że iteracja w drugim punkcie zawsze osiąga element wyjściowy x. Ponieważ zbiór X jest skończony iteracja x,α(x),α2(x) w pewnym kroku musi wrócić do elementu już rozważanego, zatem αi(x)=αj(x) dla pewnych i<j. Weźmy najmniejsze takie j, że αi(x)=αj(x) dla pewnego 0i<j. Gdyby i0 to z faktu, że α jest permutacją mamy αi1(x)=αj1(x), co stoi w sprzeczności z minimalnością j. A zatem αj(x)=x.

Pozostaje jeszcze pokazać, że otrzymane cykle są rozłączne. Załóżmy, że nie są i weźmy pierwszy napotkany element y=αi(x), który był już w którymś z poprzednich cykli. Zauważmy, że i>0 gdyż x był wybrany jako element nie pokryty przez żaden cykl (patrz punkt pierwszy). Wiemy, że istnieje element z w tym samym cyklu co y taki, że α(z)=y, ale także α(αi1(x))=y. Ponieważ α jest permutacją, otrzymujemy αi1(x)=z, co stoi w sprzeczności z faktem, że y jest jedynym elementem z poprzedniego cyklu.

Jeśli permutacja α złożona jest z k rozłącznych cykli, to zapisujemy α=(x0,)(x1,)(xk1,), gdzie w kolejnych nawiasach są elementy kolejnych cykli startujące od odpowiednio: x0,,xk1.

#1

Przykład

Rozważmy jeszcze raz permutację αS7:

n0123456α(n)2360415

Rozkład α na cykle:

  • 0, α(0)=2, α(2)=6, α(6)=5, α(5)=1, α(1)=3, α(3)=0,
  • 4, α(4)=4,
  • α=(026513)(4).