Nincs találat
A keresett oldal nem található. Próbálja meg finomítani a keresést vagy használja a fenti navigációt, hogy megtalálja a bejegyzést.
Az előző leckékben már összeraktuk az alapokat:
megnéztük, mi az a halmaz, mit jelent a részhalmaz, hatványhalmaz, és végigmentünk az alap halmazműveleteken is – unió, metszet, különbség, komplementer, szimmetrikus különbség, Venn-diagrammal megtámogatva.
Most jön a „matek hack” rész: a halmazazonosságok.
Ezek olyan általános szabályok, amik megmondják, hogyan viselkednek a halmazműveletek
Ezeket a szabályokat használjuk arra, hogy:
bonyolult halmazkifejezéseket egyszerűbbre alakítsunk,
vagy bizonyítsuk, hogy két halmazkifejezés ugyanazt jelenti. Végigmegyünk a legfontosabb halmazazonosságokon, mindegyikhez adunk hétköznapi magyarázatot, konkrét kis elemszámú példát és ha kell, Venn-diagramot is, hogy vizuálisan is összeálljon.
A cél az, hogy a „halmazazonosságok” ne egy bemagolandó lista legyen, hanem egy eszköztár, amit magabiztosan tudsz használni példákban és a vizsgán is.
Honnan ez a fura szó? Az idempotens szó a latinból jött:
idem = ugyanaz
potens = képes, hatásos
Szó szerint azt jelenti, hogy képes ugyanaz maradni. Olyan műveletről beszélünk, ami nem változtat azon, amit magával művelünk.
Egy művelet idempotens, ha bármely elemre igaz, hogy a ∘ a = a.
Vagyis ha önmagával elvégzel egy műveletet, akkor az eredmény ugyanaz marad. Nekünk halmazszinten annyi kell most belőle, hogy A ∩ A = A és A ∪ A = A
A metszet és az unió is idempontens művelet, mert ha egy halmazt saját magával metszel, nem lesz kevesebb vagy több, ugyanaz marad.
Ha egy halmazt saját magával veszel unióba, nem kapsz új elemet, ugyanaz marad.
Példa: A = {1; 2; 3}
A ∩ A = {1; 2; 3} = A
A ∪ A = {1; 2; 3} = A
A metszetben csak olyan elem maradhat, ami mindkét oldalon benne van – ha a két oldal ugyanaz, akkor minden elemet „visszakapunk”;
Az unióba minden elem bekerül, ami bármelyik oldalon benne van – ha mindkét oldalon ugyanazok vannak, akkor sincs több.
Ezt hívják idempotencia tételnek halmazműveletekre:
A ∩ A = A
A ∪ A = A
Ugyanezt a gondolatot viszik tovább az infóban is: Egy művelet/idempotens API-hívás → ha többször lefuttatod, ugyanaz az eredmény, mintha egyszer futtattad volna.
A kommutativitás szó a latin commutare igéből jön, ami kb. azt jelenti, hogy felcserélni, kicserélni.
Ha egy művelet kommutatív, akkor ha felcseréled a sorrendet, a végeredmény ugyanaz marad.
Ismerős példákkal:
Az összeadás kommutatív, hiszen mindegy, hogy 2 + 5 vagy 5 + 2, azaz 2 + 5 = 5 + 2
A szorzás kommutatív: 3 * 4 = 4 * 3
A kivonás nem kommutatív, hiszen 5 − 3 ≠ 3 − 5 és persze az osztás sem az.
A halmazműveleteknél két fontos művelet is kommutatív:
1. a metszet: A ∩ B = B ∩ A
Ami A-nak és B-nek közös eleme, az akkor is ugyanaz, ha A ∩ B-t írunk vagy B ∩ A-t.
2. Unió: A ∪ B = B ∪ A
Mindegy, hogy ha összerakod A és B elemeit, melyiket írod le, ugyanaz lesz a végeredmény.
Konkrét példa:
A = {1; 2; 3}
B = {3; 4}
Metszet:
A ∩ B = {3}
B ∩ A = {3}
Unió:
A ∪ B = {1; 2; 3; 4}
B ∪ A = {1; 2; 3; 4}
Mindkét esetben ugyanarra a halmazra jutunk, hiába cseréljük fel A-t és B-t → ezért mondjuk, hogy az unió és a metszet kommutatív műveletek.
Az asszociativitás mögött az a gondolat van, hogyan csoportosítjuk az elemeket. Ha egy művelet asszociatív, akkor mindegy, hova tesszük a zárójeleket, ugyanaz lesz az eredmény.
Rövid, általános definíció:
Egy kétváltozós művelet asszociatív, ha bármelyik x, y, z elemre igaz: (y*x)*z = x*(y*z)
Ismerős példákkal:
(2+3) + 4 = 2+ (3+4) = 9
Mindegy, melyikkel kezded, a zárójelezés nem változtat a végső eredményen.
Asszociativitás halmazoknál
Halmazműveleteknél is van két alap azonosság: az unió és a metszet asszociatív. Formálisan:
(A ∩ B) ∩ C = A ∩ (B ∩ C)
(A ∪ B) ∪ C = A ∪ (B ∪ C)
Ha több halmazt metszenél / egyesítenél, mindegy, melyik kettőt fogod össze először, a végeredmény ugyanaz lesz.
Példa:
Legyen:
A = {1; 2; 3}
B = {2; 3; 4}
C = {3; 4; 5}
Metszet:
Bal oldal:
A ∩ B = {2; 3}
(A ∩ B) ∩ C = {2; 3} ∩ {3; 4; 5} = {3}
Jobb oldal:
B ∩ C = {3; 4}
A ∩ (B ∩ C) = {1; 2; 3} ∩ {3; 4} = {3}
Mindkét oldalon {3} → a metszet asszociatív.
Ha sok halmaz szerepel egy kifejezésben, az asszociativitás azt mondja:
nem kell a zárójeleken parázni,
nyugodtan átírhatod úgy, ahogy áttekinthetőbb,
a végeredmény nem fog megváltozni.
Ez a vizsgákon azért jó, mert egy bonyolult kifejezést át tudsz rendezni egy „szebb”, könnyebben kezelhető formára.
Legyenek:
A = {1; 2}
B = {2; 3}
C = {2; 3; 4}
Számold ki gyorsan fejben (vagy leírva):
(A ∪ B) ∪ C
A ∪ (B ∪ C)
A = {1; 2}
B = {2; 3}
C = {2; 3; 4}
Abszorpció eredete a latin absorbere szóra vezethető vissza, amit azt jelenti, elnyelni, felszívni. Itt az A halmaz elnyeli a B-t.
Két alap azonosság tartozik ide:
(A ∪ B) ∩ A = A
(A ∩ B) ∪ A = A
Mindkettőnek az a lényege, hogy A már mindent tartalmaz, ami számít, a B már nem tud újat hozzáadni a végeredményhez.
(A ∪ B) minden, ami A-ban vagy B-ben benne van. Aztán ∩ A, azaz ebből megtartjuk csak azokat, amik A-ban is benne vannak, így csak azok maradnak, amik A-s elemek, azaz maga az A.
Példa:
A = {1; 2; 3}
B = {2; 4}
A ∪ B = {1; 2; 3; 4}
(A ∪ B) ∩ A = {1; 2; 3; 4} ∩ {1; 2; 3} = {1; 2; 3} = A
(A ∩ B): csak azok, amik mind a kettőben benne vannak. Aztán ∪ A: ezt egyesítjük A-val. De az A metszet B elemei már eleve A-ban vannak, hiszen közösek. Tehát, amikor uniót veszel A-val, nem kapsz új elemet, csak A marad.
Példa:
A = {1; 2; 3}
B = {2; 3; 4}
A ∩ B = {2; 3}
(A ∩ B) ∪ A = {2; 3} ∪ {1; 2; 3} = {1; 2; 3} = A
Ezért mondjuk, hogy A „elnyeli” B-t: ha A már benne van a kifejezésben, a másik halmaz nem tudja kimozdítani.
Feladat:
Legyen:
A = {1; 2}
B = {2; 3; 4}
Számold ki:
A ∩ B = {2}
(A ∩ B) ∪ A = {2} ∪ {1; 2} = {1; 2} = A
Szétoszthatóság, az a* (b+c) = a*b + a*c jelenség, csak halmazoknál:
(A ∪ B) ∩ C = (A ∩ C) ∪ (B ∩ C)
A metszet disztributív az unió felett.
(A ∩ B) ∪ C = (A ∪ C) ∩ (B ∪ C)
Az unió disztributív a metszet felett.
Mind a kettő azt mondja ki, hogy a C szétosztható A-ra és B-re, csak az egyiknél a metszet, a másiknál az unió a „szorzás”.
Olvasat – bal oldal:
A ∪ B – minden, ami A-ban vagy B-ben benne van;
utána ∩ C – ebből megtartjuk azokat, amik C-ben is benne vannak.
Olvasat – jobb oldal:
A ∩ C – elemek, amik A-ban is és C-ben is benne vannak;
B ∩ C – elemek, amik B-ben is és C-ben is benne vannak;
ezek uniója: (A ∩ C) ∪ (B ∩ C) – azok, amik A-val és C-vel közösek, vagy B-vel és C-vel közösek
Ugyanazt mondjuk kétféleképpen:
1. először egyesítem A-t és B-t, majd lemetszem C-vel
2. C-vel külön-külön metszem A-t és B-t, aztán ami kijött azt egyesítem.
Legyen:
A = {1; 2; 3}
B = {2; 4}
C = {2; 3; 5}
Bal oldal:
A ∪ B = {1; 2; 3; 4}
(A ∪ B) ∩ C = {1; 2; 3; 4} ∩ {2; 3; 5} = {2; 3}
Jobb oldal:
A ∩ C = {1; 2; 3} ∩ {2; 3; 5} = {2; 3}
B ∩ C = {2; 4} ∩ {2; 3; 5} = {2}
(A ∩ C) ∪ (B ∩ C) = {2; 3} ∪ {2} = {2; 3}
Mindkét oldalon {2; 3} → az azonosság működik.
Itt az unió szétosztható a metszett felett.
Olvasat – bal oldal
A ∩ B – közös elemek A-ban és B-ben;
utána ∪ C – ehhez hozzáadjuk C minden elemét.
Olvasat – jobb oldal
A ∪ C – ami A-ban vagy C-ben van;
B ∪ C – ami B-ben vagy C-ben van;
ezek metszete: (A ∪ C) ∩ (B ∪ C): ami mindkettőben szerepel.
Konkrét példa:
A = {1; 2; 3}
B = {2; 4}
C = {2; 3; 5}
Bal oldal:
A ∩ B = {2}
(A ∩ B) ∪ C = {2} ∪ {2; 3; 5} = {2; 3; 5}
Jobb oldal:
A ∪ C = {1; 2; 3; 5}
B ∪ C = {2; 3; 4; 5}
(A ∪ C) ∩ (B ∪ C) = {1; 2; 3; 5} ∩ {2; 3; 4; 5} = {2; 3; 5}
Megint ugyanaz a halmaz → az unió is disztributív a metszet felett.
Legyenek:
A = {1; 2}
B = {2; 3}
C = {2; 4}
Számold ki: (A∪B)∩C, majd (A∩C)∪(B∩C). Egyenlőek?
A ∪ B = {1; 2; 3}
(A ∪ B) ∩ C = {1; 2; 3} ∩ {2; 4} = {2}
A ∩ C = {2}
B ∩ C = {2}
{2} ∪ {2} = {2} (idempotencia)
Igen, egyenlőek.
Idempotencia
A ∩ A = A
A ∪ A = A
Kommutativitás (felcserélhetőség)
A ∩ B = B ∩ A
A ∪ B = B ∪ A
Asszociativitás (csoportosíthatóság)
(A ∩ B) ∩ C = A ∩ (B ∩ C)
(A ∪ B) ∪ C = A ∪ (B ∪ C)
Abszorpció
(A ∪ B) ∩ A = A
(A ∩ B) ∪ A = A
Disztributivitás (szétosztás)
(A ∪ B) ∩ C = (A ∩ C) ∪ (B ∩ C)
(A ∩ B) ∪ C = (A ∪ C) ∩ (B ∪ C)
A keresett oldal nem található. Próbálja meg finomítani a keresést vagy használja a fenti navigációt, hogy megtalálja a bejegyzést.
Az első leckében megnéztük, mi az a halmaz, mit jelent az, hogy részhalmaz, üres halmaz, hatványhalmaz, intervallum… Most szintet lépünk: jönnek a halmazműveletek.
A gyakorlatban ez azt jelenti, hogy nem csak egy halmazt nézünk, hanem kettőt (vagy többet), és azt vizsgáljuk, hogyan lehet őket „összekeverni”:
mik azok az elemek, amelyek legalább az egyikben benne vannak,
mik azok, amelyek mindkettőben,
mik maradnak meg, ha az egyiket a másikból „kivonjuk”,
és mit jelent az, hogy egy halmaz komplementere vagy szimmetrikus különbsége a másikkal.
Ebben a leckében végigmegyünk az alap műveleteken halmazokkal – unió, metszet, különbség, komplementer, szimmetrikus különbség – és mindegyiket:
megnézzük jelöléssel (A ∪ B, A ∩ B, A \ B…),
adunk hozzá konkrét példát,
és Venn-diagrammal is ábrázoljuk, hogy vizuálisan is összeálljon.
A halmazműveletek térképe
A halmazműveleteket nem csak jelekkel (A ∪ B, A ∩ B, A \ B…) lehet leírni, hanem nagyon szépen ábrázolhatjuk őket Venn-diagrammal is. Ez tulajdonképpen egy kis rajz arról, hogy mely elemek hova tartoznak.
Alap elemei:
egy téglalap: ez jelöli az univerzális halmazt (U), vagyis „minden elemet, ami szóba jöhet”;
a téglalapon belül körök:
az egyik kör az A halmaz,
a másik kör a B halmaz,
ha átfedik egymást, akkor a közös részük az A ∩ B (metszet),
a teljes két kör együtt az A ∪ B (unió).
Amikor halmazműveleteket ábrázolunk, a Venn-diagramon beszínezzük azt a részt, ami az adott kifejezéshez tartozik:
ha unióról van szó, az A és B összes részét satírozzuk;
ha metszetről, akkor csak az átfedés középső része lesz színezve;
ha különbségről, akkor A-nak csak azt a részét satírozzuk, ami nem közös B-vel;
komplementernél az U téglalap összes olyan részét, ami nem az adott halmazban van.
A Venn-diagram így egy vizuális „térkép” lesz, amelyen könnyen leolvasható, hogy az egyes halmazműveletek mit jelentenek. A későbbi feladatoknál a Venn-diagram nagy segítség: nem csak fejből kell kitalálnod, hogy egy elem benne van-e a kifejezésben (például A ∩ (B \ C)), elég végiggondolni, mely részek színeződnek ki az ábrán.
Az első halmazművelet, amit megtanulunk, az unió.
Jelölése: A ∪ B (ejtsd: „A unió B”).
Mit jelent az unió?
Az unió azoknak az elemeknek a halmaza, amelyek
👉 legalább az egyik halmazban benne vannak.
Formálisan így szokták leírni:
x ∈ A ∪ B, ha x ∈ A vagy x ∈ B.
Tehát ha egy elem benne van A-ban, vagy benne van B-ben, vagy benne van mindkettőben, akkor biztosan benne lesz az A ∪ B unióban.
Példa: A = {1; 2; 3} és B = {3; 4; 5}
A két halmaz uniója: A ∪ B = {1; 2; 3; 4; 5}
Minden elem, ami A-ban volt és minden elem, ami B-ben volt, egyszer szerepel az unióban. A 3 mind a kettőben volt, de csak egyszer írjuk le.
Példa2: A = {a; b; c} és B = {d; d}
A két halmaz uniója: A ∪ B = {a; b; c; d}. Újra, minden ami A-ban és B-ben előfordult, az egyszer belekerül az A ∪ B halmazba.
Venn diagrammon: Bal kör: A, jobb kör: B. Középen fedik egymást. Ha az A ∪ B-t ábrázoljuk, akkor a teljes bal, teljes jobb kört beszínezzük és a középső részt is.
Az unió tulajdonságai:
A ∪ B = B ∪ A → az unió kommutatív (csereberélheted a sorrendet)
(A ∪ B) ∪ C = A ∪ (B ∪ C) → asszociatív
A ∪ A = A → ha önmagaddal veszel uniót, nem lesz „több” elem
A ∪ ∅ = A → az üres halmaz nem ad hozzá semmit az unióhoz
Feladat:
Legyenek a következő halmazok: A = {1; 3; 5; 7} és B = {3; 4; 7; 8}. Mi lesz az A ∪ B = ??
A ∪ B = {1; 3; 4; 5; 7; 8}
Az unió után a másik alapművelet a metszet.
Jelölése: A ∩ B (ejtsd: „A metszet B”).
Mit jelent a metszet?
A metszet azoknak az elemeknek a halmaza, amelyek
👉 mindkét halmazban benne vannak egyszerre.
Formálisan: x ∈ A ∩ B, ha x ∈ A és x ∈ B.
Tehát egy elem csak akkor kerül be az A ∩ B-be, ha azt megtalálod A-ban és B-ben is.
Példa1:
A = {1; 3; 5; 7}
B = {3; 4; 7; 8}
Nézzük, mely számok vannak meg mindkettőben: A ∩ B = {3; 7}
A szokásos két körös ábra: bal kör: A, jobb kör: B. Haz az A ∩ B-t ábrázoljuk, akkor csak a középső, egymást fedő részt satírozzuk be. Ez jelzi, hogy ide azok az elemek tartoznak, amelyek egyszerre vannak A-ban és B-ben is.
(A ∩ B) ∩ C = A ∩ (B ∩ C) → asszociatív
A ∩ A = A → ha önmagaddal metszenéd, nem lesz kevesebb
A ∩ ∅ = ∅ → az üres halmaz semmivel sem „metsz” semmit
Feladat: Szerinted igaz., hogy A ∩ B mindig részhalmaza A ∪ B-nek?
Igen. A ∩ B mindig részhalmaza A ∪ B-nek, mert ami mindkettőben benne van, az biztosan „legalább az egyikben” is benne lesz.
Jelölés: A \ B.
Mit jelent? Az A\B azoknak az elemeknek a halmaza, amelyek A-ban benne vannak, de B-ben nincsenek benne.
Formálisan:
x ∈ A \ B, ha x ∈ A és x ∉ B.
A = {1; 3; 5; 7}
B = {3; 4; 7; 8}
Nézzük sorban az A elemeit:
1 → A-ban benne van, B-ben nincs → marad
3 → A-ban benne van, B-ben is benne van → kiesik
5 → A-ban benne van, B-ben nincs → marad
7 → A-ban benne van, B-ben is benne van → kiesik
Tehát: A \ B = {1; 5} Ha a másik irányt nézzük: B\A = {4; 8}. Ebből is látszik, hogy A\B és B\A általában nem ugyanaz.
A \ ∅ = A
A \ A = ∅
Általában: A \ B ≠ B \ A
Ha A = B-vel, akkor A\B = ∅ és B\A = ∅
Szokásos két kör: bal kör – A, jobb kör – B. Ha az A\B különbségét ábrázoljuk, akkor csak az A bal oldali részét satírozzuk, a középső, közös részt, az A ∩ B-t nem színezzük és a B külön jobb oldali része sem része az A\B-nek.
Feladat:
A = {1; 3; 5; 7}
B = {3; 4; 7; 8}
Már tudjuk:
A ∪ B = {1; 3; 4; 5; 7; 8}
A ∩ B = {3; 7}
A \ B = {1; 5}
A kérdés: mi a B\A?
B\A = {4; 8}
A komplementer kicsit más, mint az eddigiek, mert mindig kell hozzá egy univerzális halmaz (U) – ez az „összes szóba jövő elem” halmaza.
Definíció: Az A komplementere ((jele: Ᾱ) azoknak az elemeknek a halmaza, amelyek az U-ban benne vannak, de az A-ban nincsenek.
Formálisan: x ∈ Ᾱ ⟺ x ∈ U és x ∉ A
Tehát mindig az U-ból nézzük, mi hiányzik A-ból.
Példa: legyen most U = {1; 2; 3; 4; 5; 6; 7; 8}
és
A = {1; 3; 5; 7}
A komplementere (Ᾱ):
U-ban: 1; 2; 3; 4; 5; 6; 7; 8
A-ban: 1; 3; 5; 7. Ami U-ban van, de A-ban nincs: 2; 4; 6; 8
Ᾱ = {2 ;4; 6; 8}
Téglalap = U
Kör = A
Ha a komplementert ábrázolod, akkor az A körön kivüli részt színezd be a téglalapban, a kör belseje nincs beszínezve. Ez mutatja, hogy minden, ami nem A.
Ᾱ̄ = A → ha kétszer veszel komplementert, visszajutsz A-hoz
∅̄ = U → az üres halmaz komplementere az egész univerzum
Ū = ∅ → az univerzum komplementere az üres halmaz
A ∪ Ᾱ = U
A ∩ Ᾱ = ∅
Feladat:
U = {1; 2; 3; 4; 5; 6}
A = {2; 4; 6}
Szerinted mi Ᾱ ebben az univerzumban?
Ᾱ = {1; 3; 5}
Mit jelent? Azok az elemek, amelyek pont az egyik halmazban benne vannak, de a másikban nincsenek. Tehát benne lehet A-ban vagy B-ben, de nem lehet mindkettőben. Jelölés: A △ B
Formálisan: x ∈ A △ B, ha
(x ∈ A és x ∉ B) vagy (x ∈ B és x ∉ A).
Lehet így is gondolni: A △ B = (A \ B) ∪ (B \ A), vagyis a különbségek uniója.
Példa:
A = {1; 3; 5; 7}
B = {3; 4; 7; 8}
A △ B = (A \ B) ∪ (B \ A) = {1; 5} ∪ {4; 8} = {1; 4; 5; 8}
Venn-diagram
Két kör (A és B), a középső átfedés nincs beszínezve, csak a két félhold rész: Az A bal oldali része (A\B) és a B jobb oldali része (B\A). Ez mutatja, hogy csak ami az egyikben van, de nem közös.
Tulajdonságai:
1. Kommutatív: A △ B = B △ A. Teljesen mindegy, melyik oldalra írod az A-t és a B-t
2. Asszociatív: (A △ B) △ C = A △ (B △ C)
3. Az üres halmaz nem változtat semmin: A △ ∅ = A
4. Inverz önmagával: A △ A = ∅. Ha egy halmazt saját magával teszed szimmetrikus különbségbe, akkor minden közös, tehát minden kiesik.
5. Kapcsolata az unióval és a metszettel: A △ B = (A \ B) ∪ (B \ A) = (A ∪ B) \ (A ∩ B)
Legyen az univerzális halmaz:
U={1; 2; 3; 4; 5; 6; 7; 8}
A = {1; 3; 4; 7}
B = {2; 3; 5; 7}
Számítsd ki az alábbi halmazokat:
1. A ∪ B
2. A ∩ B
3. A \ B
4. B \ A
5. Ā (A komplementere U-ban)
6. B̄ (B komplementere U-ban)
7. A △ B (A és B szimmetrikus különbsége)
Bónusz kérdés:
Igaz-e, hogy (A ∩ B) ⊆ (A ∪ B)? Indokold röviden!
A ∪ B = {1; 2; 3; 4; 5; 7}
A ∩ B = {3; 7}
A \ B = {1; 4}
B \ A = {2; 5}
Ā = {2; 5; 6; 8}
B̄ = {1; 4; 6; 8}
A △ B = {1; 2; 4; 5}
Igen, igaz.
Ha x ∈ (A ∩ B), akkor x benne van A-ban és B-ben is.
Ekkor x biztosan benne van A ∪ B-ben is (mert az unióba minden elem bekerül, ami A-ban vagy B-ben – így a mindkettőben lévő elemek is).
Ezért minden (A ∩ B)-beli elem benne van A ∪ B-ben is, tehát
(A ∩ B) ⊆ (A ∪ B).
A keresett oldal nem található. Próbálja meg finomítani a keresést vagy használja a fenti navigációt, hogy megtalálja a bejegyzést.
A „halmazok” elsőre nagyon elvontnak tűnnek: kapcsos zárójelek, furcsa jelek (∈, ∉), Venn-diagramok, amik átfedő buborékokra hasonlítanak. Mégis, a halmazelmélet alapok végig ott vannak a mindennapjainkban: amikor a kedvenc könyveidet sorolod, amikor kiválasztod a vizsgára tanulandó tételeket, vagy amikor eldöntöd, melyik tárgyaidból kell még pótolni.
Ebben a bejegyzésben lépésről lépésre átvesszük a halmazok alapfogalmait – mi az a halmaz, mit jelent az, hogy egy elem „benne van” vagy „nincs benne”, mik azok a klasszikus számhalmazok, és hogyan segít a Venn-diagram abban, hogy fejben is rend legyen. Cél: hogy a halmazelmélet alapok ne mumus legyen a témazárón, hanem egy érthető, átlátható rendszer, amire még építeni is tudsz.
Halmazelmélet alapok lépésről lépésre
Halmaz: olyan csoport, amelyben az egymáshoz tartozó (azonos szempont alapján kiválasztott) elemeket gyűjtjük össze.
Például: a hónapok nevei egy halmazt alkotnak:
H = {január; február; …; december}
Matekon leggyakrabban számhalmazokkal dolgozunk.
Jelölés:
A = {1; 2; 3}
Itt az A a halmaz neve (mindig nagybetűvel jelöljük), a kapcsos zárójelek között vannak a halmaz elemei.
Két halmaz egyenlő, ha pontosan ugyanazok az elemek vannak bennük.
Példa:
A = {1; 2; 3} és B = {1, 2, 3} ekkor A = B
A sorrend nem számít, a lényeg, hogy ugyanazok az elemek szerepeljenek benne.
Ha egy halmaz minden eleme benne van egy másik halmazban, akkor részhalmazról beszélünk
Példa:
A = {1; 2; 3} és C = {1, 3}
Mivel a C minden eleme benne van az A halmazban: C ⊆ A
Fordítva viszont nem igaz: A ⊄ C
Legyen:
A = {1; 2}
B = {1}
C = {1; 2}
B valódi részhalmaza A-nak, mert B minden eleme benne van A-ban, de B ≠ A. Tehát a B ⊆ A és mivel valódi részhalmaz, B ⊂ A
C nem valódi részhalmaza A-nak, mert egyenlő vele. C ⊆ A, mert minden eleme megvan A-ban, de C ⊂ A nem igaz, mert nem valódi részhalmaz, hiszen C = A-val.
Minden halmaz részhalmaza önmagának: A ⊆ A
De nem valódi részhalmaza önmagának, mert A nem „kisebb” A-nál: A ⊄ A
A valódi részhalmaznál mindig „kevesebb” elem van, mint az eredeti halmazban:
Ha B ⊂ A, akkor |B| < |A|
Az a halmaz, melynek egyetlen eleme sincs: D = {} vagy D = ∅
Fontos: az üres halmazban a 0 sincs benne, mert egyáltalán nincs eleme. Az üres halmaz minden halmaznak a részhalmaza: ∅ ⊆ A (bármilyen A halmazra igaz).
Véges halmaz: meg tudjuk mondani, hány eleme van. Példa: A = {1; 2; 3} -> 3 eleme van.
A halmaz elemszámát számosságnak nevezzük, jele |A|
Példa: ha A = {1; 2; 3} akkor |A| = 3
Végtelen halmaz: nincs „utolsó” eleme. Például, az egész számok halmaza: Z = {…; -2; -1; 0; 1; 2; …}
Megszámlálhatóan végtelen halmaz: olyan végtelen halmaz, amelynek elemei sorba rendezhetők úgy, hogy mindegyik kap egy 1, 2, 3, … természetes számú sorszámot (felsorolhatók egy sorozat elemeiként)
van első elem: a₁
van második elem: a₂
van harmadik: a₃
és így tovább…
…és minden elem pontosan egyszer szerepel ebben a listában.
Megszámlálhatatlanul végtelen halmaz: nincs olyan felsorolás, ahol minden elemet be tudnánk sorszámozni. Hiába írsz listát, mindig maradnak ki elemek a halmazból. Példa: a valós számok halmaza. Már az 1 és 2 közötti szakasz is ilyen, az (1;2) interallumban végtelen sok szám van, bármilyen listát írsz, mindig lehet mutatni egy új számot 1 és 2 között, ami nincs rajta a listán:
1,1
1,11
1,111 stb.
Intervallum = két szám közötti számok halmaza a számegyenesen. Jelölése: számegyenesen teli karika és üres karika
Zárt intervallum:
A teli karika jelentése: bent van az intervallumban, egyéb jelölése a szögletes zárójel: [-1; 1]
Nyílt intervallum:
Számegyenesen üres karikával jelöljük, egyébként pedig nyitott szögletes zárójellel: ] -1; 1 [
A -1 és az 1 nincs benne most az intervallumban.
Vegyes intervallum: amelynek egyik vége zárt, másik nyitott, pl.: ]-1; 1] – a -1 nincs az intervallumban, az egy benne van
Végtelen intervallumoknál a végtelen jeleket mindig nyitott zárójellel írjuk, mert a végtelen nem valódi szám, nem lehet benne az intervallumban:
]0; +∞[ – a 0-nál nagyobb számok halmaza
]-∞; 2] – a 2-nél kisebb vagy egyenlő számok halmaza
A függvényhalmaznál a halmaz elemei maguk a függvények. Tehát nem azt mondjuk, hogy A = {1; 2; 3} hanem F = (f; g; h).
Elméletben a függvény nem más, mint rendezett párok halmaza:
f = {(x; y} párok, ahol y = f(x)}
Ilyenkor a függvény maga is egy halmaz, ezért tudunk függvényhalmazokról beszélni.
Példa:
Ha f(x) = 2x, akkor f = {(x; 2x) | x valós szám}
azoknak az x-eknek a halmaza, melyekre a függvényt értelmezni tudjuk. Példa: f(x) = √x
Itt csak a nullánál nagyobb vagy egyenlő számokból tudunk négyzetgyököt vonni (valós számkörben), ezért D = [0; +∞[
Azoknak az y-oknak a halmaza, melyeket a függvény felvesz
f(x) = √x, D = [0; +∞[
x ≥ 0 esetén a √x sem lehet negatív, tehát az értékkészlet:
É = [0; +∞[
Az értékkészlet nem az, hogy pl pozitív egész számok, hanem az adott függvénynél konkrétan milyen számokat kaphatunk eredményül.
Egy függvény minden (x; y) párhoz pontot rendel a koordináta rendszerben. A ponthalmaz azoknak a pontoknak a halmaza, melyek kielégítik az egyenletet. Példa:
x = 2x + 1 függvény ponthalmaza
G = {(x; y) | y = 2x + 1}
Azoknak az ismeretleneknek az értékeit tartalmaz halmaz, melyekre az egyenlet igaz. Példa: x² = 4. Két megoldása van: x₁ = -2 és x₂ = 2
A megoldáshalmaz: M = {-2; 2}
Vesszük egy halmaz összes lehetséges részhalmazát és ezeket új halmazba gyűjtjük.
Az A halmaz összes részhalmazát az A hatványhalmazának neezzük. Jelölése: P
Példa: A = {1; 2}
Mik a részhalmazai?
az üres halmaz: ∅
csak az 1-et tartalmazó halmaz: {1}
csak a 2-t tartalmazó halmaz: {2}
maga az A: {1; 2}
Tehát az A hatványhalmaza: P(A) = { ∅; {1}; {2}; {1; 2} }
Itt már látszik egy fontos dolog: A-nak 2 eleme van, a hatványhalmazának pedig 4, azaz 2² eleme lett.
2. példa: B = {a; b; c}. Soroljuk fel a részhalmazait:
∅
{a}, {b}, {c}
{a; b}, {a; c}, {b; c}
{a; b; c}
P(B) = { ∅; {a}; {b}; {c}; {a; b}; {a; c}; {b; c}; {a; b; c} }
Most a B-nek 3 eleme van, a hatváyhalmazának pedig 8 = 2³ eleme.
Ha A véges halmaz és |A| = n (A-nak n darab eleme van), akkor a hatványhalmaz elemszáma: |P(A)| = 2ⁿ
A keresett oldal nem található. Próbálja meg finomítani a keresést vagy használja a fenti navigációt, hogy megtalálja a bejegyzést.
A C++ minimum keresés az egyik legegyszerűbb, mégis irtó hasznos algoritmus, amit minden kezdő programozó megtanul.
Lényege, hogy végigmegyünk egy értékhalmazon, és közben folyamatosan figyeljük, melyik a legkisebb szám.
Ez pont olyan, mint amikor egy boltban körülnézel, és mindig megnézed, hol a legolcsóbb termék — csak itt a számok között „shoppingolunk”.
A minimumkeresés az a kis algoritmus, ami folyton visszatér majd a programozói életedben: versenyidők összehasonlításánál, pontszámoknál, hőmérsékleteknél, áraknál, sőt bármilyen helyzetben, ahol ki kell választani a legkisebb értéket.
És a legjobb? Megtanulni nagyon rövid, de ezer helyen fogod használni
A minimum keresés lényege:
végigmész a számokon, és mindig megjegyzed, melyik volt eddig a legkisebb. 👇
cin >> n; -> a felhasználó megmondja, hány értéket fog megadni. Ezt eltároljuk.
int szam;
cout << „Add meg az elso szamot: „;
cin >> szam; -> bekérjük az első számot. Ez lesz a kezdő minimum, mert amíg nincs más szám, nincs mihez viszonyítani.
int minimum = szam; -> itt beállítjuk az első számot a kezdő minimum értéknek.
for (int i = 2; i <= n; ++i) {
cout << „Add meg a ” << i << „. szamot: „;
cin >> szam; -> az első szám már megvan, ezért csak a 2. számtól kezdünk.
if (szam < minimum) {
minimum = szam; -> ha kisebb számot találunk, frissítjük.
Kérj be a felhasználótól 5 számot és írd ki közülük a legkisebbet.
Tipp:
i=1-től induló for ciklus, az első bekért szám lesz a kezdő minimum, utána minden számot hasonlítasz és frissítesz, ha kell.
Your content goes here. Edit or remove this text inline or in the module Content settings. You can also style every aspect of this content in the module Design settings and even apply custom CSS to this text in the module Advanced settings.
Kérj be a felhasználótól 7 számot, melyek lehetnek negatívak is. Írd ki közülük a legkisebb értéket!

A keresett oldal nem található. Próbálja meg finomítani a keresést vagy használja a fenti navigációt, hogy megtalálja a bejegyzést.
Képzeld el, hogy le kell írnod a táblára egy mondatot… mondjuk 100-szor.
Vagy be kell kérned 6 futó adatait.
Vagy ki kell írnod 1-től 1000-ig minden számot.
Ezek mind olyan feladatok, amiket kézzel megcsinálni rémálom, de a számítógépnek egyetlen utasítás:
👉 „Ezt ismételd meg ennyiszer.”
És pontosan ez a ciklusok lényege.
A ciklusok olyanok, mint a programozás „repeat” gombjai:
ha valamit újra és újra kell végrehajtani,
ha egy adatsoron végig kell menni,
ha valamit csak addig csinálunk, amíg egy feltétel igaz,
akkor ott biztos, hogy ciklust fogsz használni.
A C++ két klasszikus ciklusa, amit most megtanulunk:
✨ while – amíg a feltétel igaz, ismétel
✨ for – egy előre tudott, számlálós ismétlés
És hidd el, ahogy összeáll, hirtelen minden feladat egyszerűbb lesz:
ismétlődő műveletek
adatok összegzése
min–max keresés
tömbök bejárása
Most pedig lépjünk bele a ciklusok világába, kezdjük azzal, hogyan működik a while, és miért viselkedik másképp, mint a for.
A ciklusok akkor jönnek jól, amikor valamit többször egymás után szeretnénk végrehajtani. Nem akarunk százszor leírni egy utasítást, elég egyszer megadni, és a gép elismétli helyettünk.
A while kulcsszó azt jelenti:
👉 „amíg teljesül a feltétel, ismételd az utasítást.”
Ez egy úgynevezett előtesztelő ciklus, mert még belépés előtt megnézi, igaz-e a feltétel. Ha már az elején hamis, akkor egyáltalán nem fut le a ciklusmag.
Példa:
A program először megnézi, hogy i <= 10 igaz-e.
Ha igen, belép a ciklusba, kiírja a „Szia”-t, majd ++i növeli az i értékét.
Ahogy látjuk, pontosan tízszer fut le – a feltétel addig igaz, amíg az i el nem éri a 11-et.
A ciklusban található rész a ciklusmag.
A feltétel: i <= 10.
A változás: ++i, ami biztosítja, hogy a feltétel egyszer hamissá váljon, különben végtelen ciklusba futnánk.
Ha a „Szia” helyett i-t iratod ki, akkor szépen elszámol 1-től 10-ig.
A while párja a do-while, ami szintén ciklus, de egy nagyon fontos különbséggel: a do-while egyszer mindig lefut és csak utána vizsgálja a feltételt. Ezért nevezzük utótesztelő ciklusnak.
Hiába a false feltétel, a ciklusmag egyszer biztosan lefut. Ez akkor hasznos, ha valamit mindenképp meg akarunk jeleníteni a képernyőn, pl. egy bekérést.
A while ciklusnál megtanultuk, hogy addig ismételünk, amíg a feltétel igaz.
A for ciklusnál viszont már az elején tudjuk:
honnan indulunk,
meddig szeretnénk menni,
és hogyan változik a számláló.
Ezért a for olyan, mint a „számlálós ismétlés” beépített csodafegyvere:
rövid, átlátható, és a legtöbb programozási feladatnál ez lesz a kedvenced.
A for ciklus valójában három részből áll (mind egy sorban!):
for (kezdőérték; feltétel; léptetés)
1. beállítja a kezdőértéket
2. Megvizsgálja a feltételt
3. Ha igaz, lefut a ciklusmag
4. A végén elvégzi a léptetést (pl. ++i)
5. Újra ellenőrzi a feltételt … és megy tovább.
Addig ismétel, amíg a feltétel hamis nem lesz
Ez szó szerint azt mondja:
1. Indulj egytől
2. Menj addig, amíg i <= 10
3. Minden körben növeld eggyel
És így a program elszámol 1-től 10-ig.
A ciklusokat nem csak külön-külön használhatjuk, hanem egymásba is ágyazhatjuk őket.
Ez azt jelenti, hogy egy cikluson belül fut egy másik ciklus.
Ennek a legegyszerűbb és leglátványosabb példája, amikor csillagokból építünk ábrát:
a külső ciklus (i) azt mondja meg, HÁNY sor legyen,
a belső ciklus (j) azt mondja meg, egy sorban HÁNY csillag legyen.
Ha az i értéke 1, akkor 1 csillagot írunk ki,
ha az i értéke 2, akkor 2 csillagot,
…és így tovább.
Kérj be a felhasználótól egy számot és írd ki az összes számot 1-től eddig az értékig
Mit csinál?
int n; -> létrehoz egy dobozt, amelyben n nevű egész szám típusú változó van
std::cin >> n; -> beteszi a dobozba azt az értéket, amit a felhasználó megadott
int i = 1 -> ezzel létrejött egy i nevű új változó, ami egy egész szám. Kapott egy kezdőértéket: 1
i <= n -> minden ciklusfuttatás előtt ezt ellenőrzi a program. Ha igaz, lefut a ciklusmag. Ha hamis, vége a ciklusnak
++i -> minden kör végén növeli az i értékét eggyel. Ez viszi előre a ciklust.
Mi a különbség az i és az n között?
Az i csak ebben a ciklusban él, az n a cikluson kivül lett meghatározva, tehát később is vissza lehet nyúlni hozzá
Kérj be a felhasználótól egy egész számot (N) és számold ki, mennyi 1+2+3+ … + N összege
int N; -> bekéri az N -et
std::cin >> N; -> beteszi az N értékét egy dobozba
int osszeg = 0; -> van egy összeg változónk, ami nulláról indítja a számolást. Minden ciklusban belerakunk egy osszeg + i-t.
for ciklusunk:
int i = 1 – ez a ciklus számlálója. Ez számolja, hányszor futott le a ciklus, illetve melyik számnál tart. A kezdeti értéke egy, célja, hogy elérje az N értéket. Tehát ez egyről indul
Feltételvizsgálat: i <= N. Ez minden kör előtt lefut. A gép megkérdezi: a jelenlegi i érték még belefér? Ha igen, lefut a ciklusmag, ha nem, kilép a ciklusból.
N = 6, tehát belefér az 1, 2, 3, 4, 5, 6 és kilép a 7-nél.
osszeg +=i; – ez történik minden körben: fogjuk az összeg változóban levő értékét és hozzáadjuk az aktuális i-t, majd visszarakjuk ugyanabba a dobozba. Ha i = 3, akkor osszeg = osszeg + 3. Az osszeg += i az ugyanazt jelenti, mint osszeg = osszeg + i;
Hány páros szám van 1 és n között?. Kérj be a felhasználótól egy n egész számot, majd vizsgáld meg 1-től n-ig az összes számot és számold meg, hány páros szám van köztük. Végül írd ki a darabszámot.
int n; – létrehozol egy egész típusú változót, a neve: n. Ez lesz a dibiz, amibe a felhasználó által megadott szám kerül. Kiírja az üzenetet a képernyőre, a felhasználó megadja a számot.
std::cin >> n; – beleteszi a megadott számot a dobozba. Beírtam, hogy 6, innentől az n = 6 lesz.
int db = 0; -> egy újabb doboz, ez fogja számolni azt, hogy hány páros számot talált. Int = egész típusú változó. 0 – mert kezdetben 0 darab párosról tudunk.
for ciklus:
int i = 1; -> létrejön egy i nevű számláló, kezdőértéke 1. Az első vizsgált szám az 1
int <= n; -> feltétel, amíg i <= n, addig fut a ciklus. Ha n = 6, akkor az i felvett értékei: 1, 2, 3, 4, 5, 6.
Amikor i = 7, a feltétel hamis, kilép
++i -> minden kör végén az i eggyel nő.
cilusmag: {} zárójel között. if (i % 2 == 0 { db++;} Itt döntjük el, hogy az i páros-e. i % 2 == 0 (ha az i-t elosztjuk kettővel, akkor a maradék = 0). Ha ez lefut, akkor a db++ -> a db megnő eggyel. Ha az i páros, akkor a darabszám nő eggyel.
Ha lefutott a ciklus, akkor kiírja a db számát a képernyőre.
Kérj a felhasználótól egy n számot. Ezután döntsd el 1-től n-ig minden számról, hogy osztható-e hárommal. Számold meg, hány ilyen szám van és írd ki az eredményt.
Nagyon hasonlít a megoldása az előző feladathoz, itt most csak a zárójeleket nézzük át:
if (i % 3 == 0) -> a kerek zárójel azt jelzi, ez egy logikai feltétel, ami vagy igaz, vagy hamis. A feltételek mindig () – kerek zárójelben vannak. Itt azt jelenti: mit kérdezünk meg.
{} – kapcsos zárójel, azt mutatja meg, mit csinálunk, ha a válasz igaz.
for (int i = 1; i <= n; i++) { // Ez a for kapcsos nyitója
if (i % 3 == 0) { // Ez az if kapcsos nyitója
db++; // if blokk belseje
} // if blokk kapcsos zárója
} // for kapcsos zárója
Kérj a felhasználótól egy n számot. Ezután vizsgáld meg 1-től n-ig minden számot, hogy 7-esre végződik-e. Számold meg, hány ilyen szám található
A keresett oldal nem található. Próbálja meg finomítani a keresést vagy használja a fenti navigációt, hogy megtalálja a bejegyzést.