Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

05. Teoria mnogości - część 2

Treści kształcenia: Podstawy teorii mnogości. Zbiory i operacje na zbiorach. Pojęcie zbioru, zbioru pustego, elementu, należenia, inkluzji. Podzbiory prostej rzeczywistej, przedziały, suma, przekrój, różnica zbiorów. Zbiory przeliczalne i nieprzeliczalne.

Efekty kształcenia: Student potrafi wykonać podstawowe operacje na zbiorach, określić ich przeliczalność.


Iloczyn kartezjański zbiorów

Zajęcia te zaczniemy od przedstawienia jeszcze jednej operacji na zbiorach - iloczynu kartezjańskiego. Przed zdefiniowaniem tego pojęcia, musimy powiedzieć, czym jest para uporządkowana. Jest to kolekcja dwóch elementów, w której kolejność ma znaczenie. Innymi słowy dwie pary uporządkowane (x1,y1)(x_1, y_1) oraz (x2,y2)(x_2, y_2) są równe, jeżeli x1=x2x_1 = x_2 oraz y1=y2y_1 = y_2. Parę uporządkowaną dwóch liczb można przedstawić graficznie jako punkt na płaszczyźnie.

Definicja

Iloczynem kartezjańskim zbiorów A oraz B nazywamy zbiór:

{(a,b):a∈A,b∈B},\{ (a, b) : a \in A, b \in B \},

tzn. zbiór złożony z par uporządkowanych (a,b)(a, b), gdzie a∈Aa \in A, zaś b∈Bb \in B. Zbiór ten oznaczamy jako A×BA \times B.

Przykład

Zbiór {1,2,3}×{2,4}\{ \color{blue}{1, 2, 3} \} \times \{ \color{green}{2, 4}\} ma sześć elementów. Są to pary (1,2),(1,4),(2,2),(2,4),(3,2),(3,4)(\color{blue} 1, \color{green}2), (\color{blue} 1, \color{green}4), (\color{blue} 2, \color{green}2), (\color{blue} 2, \color{green}4), (\color{blue} 3, \color{green}2), (\color{blue} 3, \color{green}4). Możemy zatem przedstawić go graficznie na płaszczyźnie w następujący sposób:

Graphics object consisting of 1 graphics primitive
{(2, 4), (1, 2), (3, 4), (2, 2), (3, 2), (1, 4)}
{(2, 4), (1, 2), (3, 4), (2, 2), (3, 2), (1, 4)}

Przykład

Niech A=(1,2]∪{3}A = (1, 2] \cup \{ 3 \}, zaś B=[2,3)B = [2, 3). Narysuj na płaszczyźnie zbiór A×BA \times B.

Graphics object consisting of 10 graphics primitives

Moc zbiorów

W drugiej części zajęć zajmiemy się mocą zbiorów, czyli intuicyjnie mówiąc, liczbą ich elementów. Moc zbioru AA oznaczamy jako ∣A∣|A|. Mamy na przykład ∣{1,2,3}∣=3|\{ 1, 2, 3 \}| = 3. Jeżeli zbiory AA oraz BB są skończone, to ∣A×B∣=∣A∣⋅∣B∣|A \times B| = |A| \cdot |B|. Przykładowo: ∣{1,2,3}×{2,4}∣=3⋅2=6|\{ 1, 2, 3 \} \times \{ 2, 4 \}| = 3 \cdot 2 = 6 (patrz przykład wyżej).

Zasada włączeń i wyłączeń

Załóżmy, że w restauracji 10 klientów zamówiło zupę, a 15 drugie danie. Zastanówmy się, ilu klientów może mieć w obecnej chwili restauracja? Możliwości są różne:

  • Z jednej strony, każdy klient, który zamówił zupę, mógł też zamówić drugie danie. W takim przypadku klientów jest 15.

  • Z drugiej strony mogło zdarzyć się tak, że żaden klient, który zamówił zupę, nie zamówił drugiego dania. Wtedy klientów byłoby 10+15=2510+15 = 25.

  • Jest też możliwa każda pośrednia opcja - część klientów, która zamówiła zupę, zamówiła też drugie danie.

W każdym wypadku widzimy, że liczba klientów zależy od tego, ile klientów zamówiło i zupę, i drugie danie (czyli od przekroju zbiorów klientów zamawiających zupę i zbioru klientów zamawiających drugie danie). Z matematycznego punktu widzenia, dostajemy wzór:

∣A∪B∣=∣A∣+∣B∣−∣A∩B∣,|A \cup B| = |A| + |B| - |A \cap B|,

zwany zasadą włączeń i wyłączeń dla dwóch zbiorów. Podobnie mówi się o zasadzie włączeń i wyłączeń dla trzech zbiorów:

∣A∪B∪C∣=∣A∣+∣B∣+∣C∣−∣A∩B∣−∣B∩C∣−∣C∩A∣+∣A∩B∩C∣,|A \cup B \cup C| = |A| + |B| + |C| - |A \cap B| - |B \cap C| - |C \cap A| + |A \cap B \cap C|,

a także dla większej liczby zbiorów. Poniżej znajdziecie krótki dowód graficzny zasady włączeń i wyłączeń dla dwóch zbiorów.

Graphics object consisting of 3 graphics primitives
Graphics object consisting of 6 graphics primitives

Przykład

Ile jest liczb całkowitych dodatnich nie większych niż 10000 podzielnych co najmniej przez jedną z liczb: 2, 3 lub 5?

Rozwiązanie

Niech A2={x∈Z+:x≤10000,2∣x}A_2 = \{ x \in \mathbb Z_+ : x \le 10000, 2|x \}, A3={x∈Z+:x≤10000,3∣x}A_3 = \{ x \in \mathbb Z_+ : x \le 10000, 3|x \}, A5={x∈Z+:x≤10000,5∣x}A_5 = \{ x \in \mathbb Z_+ : x \le 10000, 5|x \} będą zbiorami liczb całkowitych dodatnich nie większych niż 10000 oraz podzielnych przez odpowiednio 2, 3 lub 5. Wtedy zbiór liczb podzielnych przez 2, 3 lub 5 to

A2∪A3∪A5.A_2 \cup A_3 \cup A_5.

Zauważmy, że:

∣A2∣=∣{2,4,6,8,…,10000}∣=10000/2=5000.|A_2| = |\{ 2, 4, 6, 8, \ldots, 10000 \}| = 10000/2 = 5000.

Ponadto A2∩A3A_2 \cap A_3 to zbiór liczb podzielnych przez 2 oraz przez 3, czyli przez 2⋅3=62 \cdot 3 = 6. Stąd: A2∩A3={6,12,18,...}A_2 \cap A_3 = \{ 6, 12, 18, ... \}. Zauważmy, że 10000/6≈1666,6610000/6 \approx 1666,66, zatem największą liczbą w tym zbiorze jest 6⋅1666=99966 \cdot 1666 = 9996 oraz ∣A2∩A3∣=1666|A_2 \cap A_3| = 1666. Analogicznie zauważamy, że A2∩A3∩A5={30,60,90,…}A_2 \cap A_3 \cap A_5 = \{ 30, 60, 90, \ldots \} oraz że największą liczbą w tym zbiorze jest 30⋅33330 \cdot 333 (ponieważ 10000/30≈333,3310000/30 \approx 333,33). Stąd ∣A2∩A3∩A5∣=333|A_2 \cap A_3 \cap A_5| = 333.

W podobny sposób obliczamy, że ∣A3∣=3333|A_3| = 3333, ∣A5∣=2000|A_5| = 2000, ∣A2∩A5∣=1000|A_2 \cap A_5| = 1000 oraz ∣A3∩A5∣=666|A_3 \cap A_5| = 666. Zatem korzystając z zasady włączeń i wyłączeń:

∣A2∪A3∪A5∣=∣A2∣+∣A3∣+∣A5∣−∣A2∩A3∣−∣A2∩A5∣−∣A3∩A5∣+∣A2∩A3∩A5∣=5000+3333+2000−1666−1000−666+333=7334.|A_2 \cup A_3 \cup A_5| = |A_2| + |A_3| + |A_5| - |A_2 \cap A_3| - |A_2 \cap A_5| - |A_3 \cap A_5| + |A_2 \cap A_3 \cap A_5| = 5000 + 3333 + 2000 - 1666 - 1000 - 666 + 333 = 7334.

Nasz wynik sprawdzimy za pomocą prostego programu komputerowego.

Istnieje 7334 liczb całkowitych dodatnich nie większych niż 10000 i podzielnych co najmniej przez jedną z liczb 2, 3 lub 5.

Przykład

W sondażu dotyczącym znajomości języków obcych wzięło udział 100 osób. Spośród nich:

  • 28 osób zna język angielski,

  • 33 osoby znają język niemiecki,

  • x osób zna język francuski,

  • 16 osób zna język angielski i niemiecki,

  • 13 osób zna język angielski i francuski,

  • y osób zna język niemiecki i francuski,

  • 7 osób zna wszystkie trzy języki.

Czy to możliwe, że

(a) x = 59, y = 12,

(b) x = 59, y = 25,

(c) x = 75, y = 12?

Wskazówka: skorzystaj z apletu poniżej. W podpunkcie (b), co dzieje się, gdy x=59x = 59, zaś y=12,13,…,25y = 12, 13, \ldots, 25? W podpunkcie (c), co dzieje się, gdy y=12y = 12, zaś x=59,…,75x = 59, \ldots, 75?

Rozwiązanie

Zbiory osób znających język angielski, niemiecki lub francuski będziemy oznaczali odpowiednio literami AA, NN, FF.

(a) Zauważmy, że

∣A∖(N∪F)∣=∣A∣−∣A∩N∣−∣A∩F∣+∣A∩N∩F∣=6|A \setminus (N \cup F)| = |A| - |A \cap N| - |A \cap F| + |A \cap N \cap F| = 6
∣N∖(A∪F)∣=∣N∣−∣N∩A∣−∣N∩F∣+∣A∩N∩F∣=12|N \setminus (A \cup F)| = |N| - |N \cap A| - |N \cap F| + |A \cap N \cap F| = 12
∣F∖(N∪A)∣=∣F∣−∣F∩N∣−∣F∩A∣+∣A∩N∩F∣=41|F \setminus (N \cup A)| = |F| - |F \cap N| - |F \cap A| + |A \cap N \cap F| = 41

-można zatem łatwo wskazać przykład, uzupełniając odpowiednie składowe diagramu Venna liczbami tak, jak pokazuje aplet poniżej.

(b) Mamy:

∣N∖(A∪F)∣=∣N∣−∣N∩A∣−∣N∩F∣+∣A∩N∩F∣=33−25−16+7=−1,|N \setminus (A \cup F)| = |N| - |N \cap A| - |N \cap F| + |A \cap N \cap F| = 33 - 25 - 16 + 7 = -1,

co daje sprzeczność.

(c) Zgodnie z zasadą włączeń i wyłączeń:

∣A∪N∪F∣=∣A∣+∣N∣+∣F∣−∣A∩N∣−∣N∩F∣−∣A∩F∣+∣A∩N∩F∣=28+33+75−16−13−12+7=102.|A \cup N \cup F| = |A| + |N| + |F| - |A \cap N| - |N \cap F| - |A \cap F| + |A \cap N \cap F| = 28 + 33 + 75 -16-13 - 12 + 7 = 102.

Ale w sondażu brało udział sto osób! Sprzeczność kończy dowód!

Graphics object consisting of 19 graphics primitives
Graphics Array of size 1 x 3
Graphics Array of size 1 x 3

Przykład

Ile elementów ma zbiór

({−2,−1,…,2}×{−3,−2,…,2})∪({1,2,3,4}×{0,1,2,3,4})?(\{ -2, -1, \ldots, 2 \} \times \{ -3, -2, \ldots, 2 \}) \cup (\{ 1, 2, 3, 4 \} \times \{ 0, 1, 2, 3, 4 \})?

Niech A={−2,−1,…,2}×{−3,−2,…,2}A = \{ -2, -1, \ldots, 2 \} \times \{ -3, -2, \ldots, 2 \}, zaś B={1,2,3,4}×{0,1,2,3,4}B = \{ 1, 2, 3, 4 \} \times \{ 0, 1, 2, 3, 4 \}. Wtedy ∣A∣=5⋅6=30|A| = 5 \cdot 6 = 30 oraz ∣B∣=4⋅5=20|B| = 4 \cdot 5 = 20. Ponadto A∩B={1,2}×{0,1,2}A \cap B = \{ 1, 2 \} \times \{ 0, 1, 2 \}. Stąd:

∣A∪B∣=∣A∣+∣B∣−∣A∩B∣=30+20−6=44.|A \cup B| = |A| + |B| - |A \cap B| = 30 + 20 - 6 = 44.
44
Graphics object consisting of 2 graphics primitives

Zbiory przeliczalne i nieprzeliczalne

Oprócz zbiorów skończonych mamy również zbiory nieskończone. Co ciekawe, okazuje się, że istnieją “większe” i “mniejsze” zbiory nieskończone!

Definicja

Mówimy, że zbiór AA jest przeliczalny, jeżeli jego elementy można ustawić w ciąg (skończony lub nie).

Przykład

Zbiór liczb całkowitych jest przeliczalny, bo jego elementy można ustawić w ciąg w następujący sposób:

0,−1,1,−2,2,−3,3,….0, -1, 1, -2, 2, -3, 3, \ldots.

Przykład

Zbiór liczb parzystych jest przeliczalny, bo jego elementy można ustawić w ciąg w następujący sposób:

0,−2,2,−4,4,−6,6,….0, -2, 2, -4, 4, -6, 6, \ldots.

Przykład

Okazuje się, że również zbiór liczb wymiernych jest przeliczalny. Aby to pokazać, utwórzmy tabelę, w której na przecięciu ii-tego wiersza oraz j-tej kolumny stoi liczba wymierna ij\frac ij dla i,j=1,2,…i, j = 1, 2, \ldots. Następnie przejdźmy tabelę tak, jak wskazują strzałki na poniższym rysunku:

Graphics object consisting of 130 graphics primitives

W ten sposób uzyskaliśmy ciąg zawierający wszystkie dodatnie liczby wymierne - jego pierwsze wyrazy to:

11,21,12,13,22,31,….\frac 11, \frac 21, \frac 12, \frac 13, \frac 22, \frac 31, \ldots.

Każda liczba powtarza się w tym ciągu nieskończenie wiele razy (bo np. 11=22=33=…=1\frac 11 = \frac 22 = \frac 33 = \ldots = 1), ale to nie problem. Możemy przecież wykreślić powtarzające się elementy z ciągu (zaznaczyliśmy wykreślane elementy w tabeli na czerwono). Oto pierwsze wyrazy uzyskanego w ten sposób ciągu:

1,2,12,13,3,4,32,23,14,15,5,…1, 2, \frac 12, \frac 13, 3, 4, \frac 32, \frac 23, \frac 14, \frac 15, 5, \ldots

Przykład

Okazuje się, że nie każdy zbiór jest przeliczalny. Naszkicujemy teraz dowód faktu, że odcinek (0,1)(0, 1) jest nieprzeliczalny. Jest to tak zwana metoda przekątniowa Cantora. Załóżmy nie wprost, że udało nam się ustawić wszystkie liczby z przedziału (0,1)(0, 1) w ciąg a1,a2,a3,…a_1, a_2, a_3, \ldots. Rozważmy rozwinięcia dziesiętne liczb w ciągu. Jeżeli któraś z liczb ma skończone rozwinięcie, dopiszmy nieskończenie wiele zer. Utwórzmy nową liczbę a∈(0,1)a \in (0, 1) w następujący sposób:

  • jej pierwszą cyfrą po przecinku jest dowolna cyfra różna od pierwszej cyfry liczby a1a_1 oraz od cyfry 9,

  • jej drugą cyfrą po przecinku jest dowolna cyfra różna od drugiej cyfry liczby a2a_2 oraz od cyfry 9,

  • jej trzecią cyfrą po przecinku jest dowolna cyfra różna od trzeciej cyfry liczby a3a_3 oraz od cyfry 9,

i tak dalej. Ponieważ w zapisie liczby aa nie występuje cyfra 9, ma ona jednoznaczny zapis dziesiętny. Liczba aa nie może występować w tym ciągu, ponieważ różni się przynajmniej jedną cyfrą z każdą liczbą w ciągu. Dla przykładu, jeżeli liczby w ciągu wyglądają następująco:

a1=0,72914153946100800927239825167455700423140031213160…a_1 = 0,{ \color{red}7}2914153946100800927239825167455700423140031213160 \ldots
a2=0,05703499398506417803443814288344130324488652422423…a_2 = 0,0{ \color{red}5}703499398506417803443814288344130324488652422423 \ldots
a3=0,47260549464937888464857234409059404878273865237408…a_3 = 0,47{ \color{red}2}60549464937888464857234409059404878273865237408 \ldots
a4=0,84864489486821992621001453107232909353022794063046…a_4 = 0,848{ \color{red}6}4489486821992621001453107232909353022794063046 \ldots
a5=0,12450781586846597827135854060075612975208532014674…a_5 = 0,1245{ \color{red}0}781586846597827135854060075612975208532014674 \ldots
a6=0,68053068505231436803593524867561561641622148807372…a_6 = 0,68053{ \color{red}0}68505231436803593524867561561641622148807372 \ldots
a7=0,64368069780985694325900682868134090738072367639157…a_7 = 0,643680{ \color{red}6}9780985694325900682868134090738072367639157 \ldots
a8=0,39794072202696262936617027211195299172355122743815…a_8 = 0,3979407{ \color{red}2}202696262936617027211195299172355122743815 \ldots
a9=0,94284775678362930147489518107254361959917702779744…a_9 = 0,94284775{ \color{red}6}78362930147489518107254361959917702779744 \ldots
a10=0,06067949597097863119018446677681120880732956824642…a_{10} = 0,060679495{ \color{red}9}7097863119018446677681120880732956824642 \ldots

to możemy przyjąć a=0,8637117370…a = 0, 8637117370 \ldots. Przykład ten ilustruje przy okazji, czemu argument ten nazywa się metodą przekątniową.

Zauważmy, że nieprzeliczalny jest zatem również dowolny zbiór zawierający przedział (0,1)(0, 1), np. [0,1][0, 1] lub R\mathbb R. Istotnie, gdyby np. wszystkie liczby rzeczywiste można było ustawić w ciąg, to po wykreśleniu liczb spoza przedziału (0,1)(0, 1), otrzymalibyśmy ciąg elementów (0,1)(0, 1) - sprzeczność!

Uwaga: pojęcie przeliczalności ma duże znaczenie w algorytmice. Przykładowo, okazuje się, że zbiór programów w danym języku programowania jest przeliczalny. Zbiór funkcji f:N→Nf : \mathbb N \to \mathbb N jest jednak nieprzeliczalny. Zatem nie każdą funkcję można zapisać za pomocą programu komputerowego!


Zadania do samodzielnego rozwiązania

Przykład do samodzielnego rozwiązania

Narysuj zbiory:

  • {0,2,4}×{1,3,5}\{0, 2, 4\} \times \{ 1, 3, 5 \},

  • ((1,2]∪{3})×({1}∪[2,4))\bigg((1, 2] \cup \{3 \} \bigg) \times \bigg( \{ 1 \} \cup [2, 4) \bigg),

  • (1,2]×{1,3,5}(1, 2] \times \{ 1, 3, 5 \},

  • (−∞,0)×(1,4](- \infty, 0) \times (1, 4].

Przykład do samodzielnego rozwiązania

Ile jest liczb całkowitych dodatnich nie większych niż 8000 podzielnych co najmniej przez jedną z liczb: 3, 5 lub 7?

Przykład do samodzielnego rozwiązania

Ile elementów przebiega pętla zagnieżdżona:

for i = 1 to 5:
        for j = 8 to 20:
            ...

a ile dwie osobne pętle:

for i = 1 to 5:
    ...
for j = 8 to 20:
    ...

?

Przykład do samodzielnego rozwiązania

Liczba t∈Z+t \in \mathbb Z_+ jest większa od 1. Wiadomo, że zbiór:

({x∈Z:x2<10}×{x∈Z:x2≤16})∪({2,3,4,5}×{1,2,3,…t})(\{ x \in \mathbb Z : x^2 <10 \} \times \{ x \in \mathbb Z : x^2 \le 16 \}) \cup (\{ 2, 3, 4, 5 \} \times \{ 1, 2, 3, \ldots t \})

ma 79 elementów. Znajdź tt.

Przykład do samodzielnego rozwiązania

Czy zbiór liczb nieparzystych jest przeliczalny?

Przykład do samodzielnego rozwiązania

Czy zbiór wszystkich funkcji liniowych o współczynnikach wymiernych jest przeliczalny?

Przykład do samodzielnego rozwiązania

Czy zbiór [0,1]×[0,1][0, 1] \times [0, 1] jest przeliczalny?

Przykład do samodzielnego rozwiązania

Czy zbiór N×N\mathbb N \times \mathbb N jest przeliczalny?

Przykład do samodzielnego rozwiązania

Czy zbiór ciągów binarnych skończonej długości jest przeliczalny? A co ze zbiorem ciągów binarnych nieskończonej długości?

Uwaga: ciąg binarny to ciąg złożony z samych zer i jedynek, np. (0,1,0,0,0,1,1,0)(0, 1, 0, 0, 0, 1, 1, 0).