Tri prekrývajúce sa kruhy
Matematické základy informatiky
Množiny okolo nás
Kde ich stretneš v appkách, ktoré používaš každý deň
Množina v množine
Podmnožina: každý prvok A je aj prvkom B → píšeme A ⊆ B
Ľudia na svete
Používatelia Spotify
Premium
Premium ⊆ Spotify ⊆ Ľudia
Každý Premium používateľ je aj používateľ Spotify. Opačne to neplatí.
U × P: všetky možné dvojice
U = používatelia, P = pesničky. Karteziánsky súčin = každý s každou.
s1 Ain't in LA ADÉLA
s2 Leto v kufri Gleb
s3 Blinding Lights The Weeknd
s4 Birds of a Feather Billie Eilish
s5 Espresso Sabrina Carpenter
Ema
Tomáš
Lucia
Marek
(Ema, s1)
(Ema, s2)
(Ema, s3)
(Ema, s4)
(Ema, s5)
(Tomáš, s1)
(Tomáš, s2)
(Tomáš, s3)
(Tomáš, s4)
(Tomáš, s5)
(Lucia, s1)
(Lucia, s2)
(Lucia, s3)
(Lucia, s4)
(Lucia, s5)
(Marek, s1)
(Marek, s2)
(Marek, s3)
(Marek, s4)
(Marek, s5)
|U × P| = |U| · |P| = 4 · 5 = 20 dvojíc
Obľúbené ⊆ U × P
Kto má ktorú pesničku v obľúbených? Len niektoré dvojice zo súčinu.
s1 Ain't in LA ADÉLA
s2 Leto v kufri Gleb
s3 Blinding Lights The Weeknd
s4 Birds of a Feather Billie Eilish
s5 Espresso Sabrina Carpenter
Ema
Tomáš
Lucia
Marek
♥ (Ema, s1)
♥ (Ema, s4)
♥ (Tomáš, s2)
♥ (Lucia, s1)
♥ (Lucia, s3)
♥ (Lucia, s5)
♥ (Marek, s4)
7 z 20 dvojíc. Takáto podmnožina súčinu sa volá relácia – v databáze je to tabuľka obľúbené(používateľ, pesnička).
Operácie, ktoré poznáš z appiek
A ∩ B · prienik
Dva kruhy, vyfarbený je len ich spoločný prekryv
Instagram – „Sleduje ho Ema a 12 ďalších“: koho sledujem ja ∩ jeho followeri
A ∪ B · zjednotenie
Dva kruhy, vyfarbené sú oba celé
Playlist na spoločnú párty: moje obľúbené ∪ tvoje obľúbené
A \ B · rozdiel
Dva kruhy, vyfarbená je len časť prvého kruhu mimo druhého
Facebook – „Ľudia, ktorých možno poznáš“: priatelia priateľov \ moji priatelia
Množiny priamo v kóde: Set
Python
moje = {"s1", "s4", "s7"} tvoje = {"s4", "s5", "s7"} moje & tvoje # {'s4','s7'} moje | tvoje # zjednotenie moje - tvoje # {'s1'} "s4" in moje # True
TypeScript
const tagy = ["js","py","js"]; const u = new Set(tagy); // Set {"js", "py"} u.size // 2 u.has("py") // true a.intersection(b) // ES2025
Set = žiadne duplikáty + rýchla otázka „je prvkom?“ – presne to, čo treba pri lajkoch, tagoch či unikátnych návštevníkoch.
Filtre v e-shope = prienik
Notebooky
Cena do 800 €
16 GB RAM
Tri prekrývajúce sa kruhy filtrov; zvýraznený je len stred, kde sa prekrývajú všetky tri
výsledky = N ∩ C ∩ R (zelený stred)
Každý ďalší zaškrtnutý filter = ďalší prienik → menej výsledkov, nikdy nie viac.
Na zamyslenie
Spotify má stovky miliónov používateľov a desiatky miliónov pesničiek.
Koľko prvkov má U × P?
Rádovo 10¹⁶ dvojíc.
Preto sa nikdy neukladá celý súčin – iba relácia „obľúbené“.