Joukot ovat työkalu, jolla matematiikassa ja tietojenkäsittelytieteessä rakennetaan uusia käsitteitä. Joukko-opin alkeet ovat välttämättömät monien muiden asioiden, kuten erityyppisten relaatioiden sekä verkkojen ymmärtämiselle.
Jos käytät MathCheckiä ensimmäistä kertaa, niin tee ensin tehtävä Yleistä MathCheckistä. Jos et muualta löydä miten jokin symboli kirjoitetaan, niin katso MathCheck Brief Instructions.
Joukko on kokoelma alkioita. Alkiot voivat tilanteesta riippuen olla melkeinpä mitä tahansa. Usein ne ovat lukuja, merkkejä, lukupareja tai merkkijonoja. Ne voivat myös olla toisia joukkoja. Yhden alkion joukko ja sen alkio ovat eri asioita.
On tavallista ilmaista äärellinen joukko luettelemalla sen alkiot aaltosulkeiden välissä, esimerkiksi {2, 5, 8, 11, 14}. Luettelointijärjestyksellä ei ole väliä. Ei ole väliä esiintyykö alkio luettelossa yhden vai useamman kerran; ainoa mikä merkitsee on, esiintyykö se ainakin kerran vai ei yhtään kertaa. Niinpä {6, 5, 5, 3, 6} on sama joukko kuin {3, 5, 6} eli {6, 5, 5, 3, 6} = {3, 5, 6}.
Tyhjää joukkoa eli joukkoa, jossa ei ole yhtään alkiota, voitaisiin merkitä {} (ja jotkut merkitsevätkin), mutta tapana on merkitä sitä ∅. Luetteloinnissa voidaan käyttää kolmea pistettä … silloin, kun lukijalle on selvää, mitä alkioita ne edustavat.
Äärellisen joukon A alkioiden määrää merkitään |A|. Ilmoita seuraavat joukkojen alkioiden määrät.
Joukko A on joukon B osajoukko, merkitään A ⊆ B, jos ja vain jos jokainen A:n alkio on myös B:n alkio. Niinpä jokainen joukko on itsensä osajoukko, eli A ⊆ A pätee jokaiselle joukolle A. Jos A ⊆ B ja B ⊆ A, niin A = B.
Jos ja vain jos A ⊆ B ja A ≠ B, niin A on B:n aito osajoukko. Se merkitään A ⊂ B. Tällöin on olemassa jokin sellainen b, että b ∈ B ja b ∉ A, mutta ei ole olemassa sellaista a, että a ∈ A ja a ∉ B.
Joillakin matematiikan osa-alueilla käytetään symbolia ⊂ siinä merkityksessä missä muut käyttävät ⊆. Jostain syystä niissäkään ei käytetä symbolia < siinä merkityksessä missä muut käyttävät ≤.
Kuinka monta osajoukkoa on seuraavilla joukoilla?
Kolmea pistettä käytetään usein myös esittämään päättymätöntä jonoa alkioita. Esimerkkejä:
m |
n |
Valitse ne tapaukset, joissa vasemman reunan joukko on ylärivin joukon osajoukko. VihjeLukuunottamatta ℕ:n riviä ja saraketta, taulukkoon syntyy kuvio joka toistuu monta kertaa. Mieti siis ℕ huolellisesti (ℕ on osapuoli kaikkiaan 5 kyllä-tapauksessa), ja mieti vaikka ℤ:n, ℤ+:n ja ℤ−:n avulla minkälainen kuvio toistuu.
⊆ | ℕ | ℤ | ℤ+ | ℤ− | ℚ | ℚ+ | ℚ− | ℝ | ℝ+ | ℝ− | |
ℕ | |||||||||||
ℤ | |||||||||||
ℤ+ | |||||||||||
ℤ− | |||||||||||
ℚ | |||||||||||
ℚ+ | |||||||||||
ℚ− | |||||||||||
ℝ | |||||||||||
ℝ+ | |||||||||||
ℝ− |
Usein joukko ilmaistaan muodossa {a | ehto} tai {a ∈ A | ehto}. Se tarkoittaa niiden alkioiden joukkoa, jotka toteuttavat annetun ehdon ja jälkimmäisessä tapauksessa myös kuuluvat joukkoon A. Siis x ∈ {a | ehto} jos ja vain jos x toteuttaa annetun ehdon. Esimerkiksi
ℕ = {n ∈ ℤ | n ≥ 0}
Täydennä seuraavat.
Ilmausta {a | ehto} saa käyttää vain silloin, kun on sovittu jokin joukko, jonka alkioita kaikki tarkasteltavat alkiot ovat. Kyseinen joukko voisi siis olla A:n paikalla ilmauksessa {a ∈ A | ehto}.
Syy tähän rajoitukseen on ristiriita, joka syntyy kirjoittamalla {a | a ∉ a}. Annetaan tälle nimi R, siis R = {a | a ∉ a}. Päteekö R ∈ R ? Se pätee jos ja vain jos R:n ehto a ∉ a toteutuu kun a:n paikalla on R, eli jos ja vain jos R ∉ R. Siis R ∈ R jos ja vain jos R ∉ R ! Tämä ongelma tunnetaan Russellin paradoksina Bertrand Russellin kunniaksi, joka keksi sen vuonna 1901. Jotkut muutkin keksivät sen samoihin aikoihin.
Joukko on ääretön jos ja vain jos mikään määrä aikaa ja paperia ei riitä sen alkioiden luettelemiseksi. Joukko on äärellinen jos ja vain jos se ei ole ääretön. Äärettömän joukon esittämisessä on pakko käyttää kolmea pistettä tai jotain muuta epäsuoraa keinoa kertoa, mitkä alkiot ovat mukana ja mitkä eivät.
Jos joukon alkioilla on suuruusjärjestys, niin joukko on ääretön jos ja vain jos siinä on sellaiset alkiot x1, x2, x3, … että jompikumpi seuraavista pätee:
Täsmällinen matemaattinen määritelmä on, että joukko on ääretön, jos ja vain jos sen alkiot voidaan asettaa pareittain vastakkain sen aidon osajoukon alkioiden kanssa. Esimerkiksi joukolle {1, 2, 4, 8, 16, …} tämä onnistuu seuraavasti: 1 ⇄ 4, 2 ⇄ 8, 4 ⇄ 16, 8 ⇄ 32, 16 ⇄ 64, …. Symbolin ⇄ vasemmalla puolella ovat vuoronperään kaikki tämän joukon alkiot, mutta oikealla puolella on niistä vain osa, koska 1 ja 2 jäävät puuttumaan. Kummallakaan puolella ei ole mitään tähän joukkoon kuulumatonta.
Sen sijaan jos sama yritetään tehdä joukolle {1, 2, 4}, niin vaikka vastaavuudet valittaisiin miten tahansa, joudutaan oikealla puolella käyttämään jossain järjestyksessä sekä 1, 2 että 4. Esimerkiksi jos on asetettu 1 ⇄ 4 ja 2 ⇄ 1, niin parin saamiseksi neloselle on pakko käyttää kakkonen eli on asetettava 4 ⇄ 2.
Seuraavat joukko-operaattorit voidaan määritellä helposti propositiologiikan operaattoreiden avulla:
Siis A ∪ B sisältää kaikki A:n alkiot ja kaikki B:n alkiot, mutta se ei vastaa sanaa ”ja” vaan sanaa ”tai”, koska alkio kuuluu siihen jos ja vain jos se kuuluu A:han tai B:hen. Vastaavasti A ∩ B sisältää kaikki ne alkiot, jotka ovat sekä A:ssa että B:ssä, ja A \ B kaikki ne, jotka ovat A:ssa mutta ei B:ssä.
Olkoon |A| = n ja |B| = m. Kuinka paljon |A ∩ B| voi olla? VastausMitä tahansa väliltä 0, …, min(n, m). Jos A:lla ja B:llä ei ole lainkaan yhteisiä alkioita, pätee |A ∩ B| = 0. Niillä voi olla enintään min(n, m) yhteistä alkiota. Minkä tahansa välitapauksen saa toteutumaan esimerkiksi valitsemalla A = {1, …, n} ja B = {1, …, l, n + 1, …, n + m − l}, missä l on haluttu yhteisten alkioiden määrä.
Koska alkio kuuluu ehdolla määriteltyyn joukkoon jos ja vain jos se toteuttaa ko. ehdon, saamme kolme helppoa lakia:
Unionia, leikkausta ja erotusta koskevia lakeja on helppo johtaa näiden lakien ja propositiologiikan avulla. Johdamme malliksi toisen joukko-opin de Morganin laeista.
x ∈ A \ (B ∪ C) | ||
(1) | ⇔ | x ∈ A ∧ x ∉ B ∪ C |
(2) | ⇔ | x ∈ A ∧ ¬(x ∈ B ∪ C) |
(3) | ⇔ | x ∈ A ∧ ¬(x ∈ B ∨ x ∈ C) |
(4) | ⇔ | x ∈ A ∧ (¬(x ∈ B) ∧ ¬(x ∈ C)) |
(5) | ⇔ | x ∈ A ∧ x ∉ B ∧ x ∉ C |
(6) | ⇔ | (x ∈ A ∧ x ∉ B) ∧ (x ∈ A ∧ x ∉ C) |
(7) | ⇔ | x ∈ A \ B ∧ x ∈ A \ C |
(8) | ⇔ | x ∈ (A \ B) ∩ (A \ C) |
Olemme osoittaneet mielivaltaiselle alkiolle x, että se kuuluu joukkoon A \ (B ∪ C) jos ja vain jos se kuuluu joukkoon (A \ B) ∩ (A \ C). Niinpä näillä kahdella joukolla on samat alkiot, eli A \ (B ∪ C) = (A \ B) ∩ (A \ C).
Seuraava tärkeä joukko-opin operaattori on tulojoukko eli karteesinen tulo A × B. Sen alkiot ovat ne parit (a, b), joille a ∈ A ja b ∈ B. Siis
A × B = {(x, y) | x ∈ A ∧ y ∈ B} HuomautusTämäkin rikkoo edellä ollutta merkinnän {a | ehto} käyttöä koskevaa sääntöä, mutta on muista syistä pätevä.
Esimerkiksi {1, 2} × {3, 4, 5} =
{ (1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5) }
Voidaan myös kertoa kolme tai useampia joukkoja. Esimerkiksi A × B × C × D koostuu nelikoista (a, b, c, d), missä a ∈ A, b ∈ B, c ∈ C ja d ∈ D. Merkintä A2 tarkoittaa A × A, A3 = A × A × A jne. Niinpä tuttu x–y-koordinaatisto esittää joukon ℝ2.
Seuraavissa tehtävissä valitse joukon alkiot.
Moni tärkeä matematiikan käsite perustuu tulojoukkoihin, kuten relaatio, funktio ja graafi. Ohjelmoinnissa tulojoukot vastaavat tietueita, aliohjelmien parametrilistoja ja ylipäätään kaikkea, missä (mahdollisesti erityyppisiä) olentoja kootaan kiinteän mittaisiksi rakenteiksi. Mutta emme ahnehdi kaikkea kerralla, vaan lopetamme tällä kertaa tähän ja jatkamme toiste.