„Algoritmuselmélet - PZH, 2013.04.24.” változatai közötti eltérés
aNincs szerkesztési összefoglaló |
|||
102. sor: | 102. sor: | ||
}} | }} | ||
===8. Feladat=== | ===8. Feladat (Van megoldás)=== | ||
Bizonyítsa be, hogy egy piros-fekete fában egy levél testvére vagy levél, vagy piros csúcs! | |||
{{Rejtett | {{Rejtett | ||
|mutatott=<big>'''Megoldás'''</big> | |mutatott=<big>'''Megoldás'''</big> | ||
|szöveg= | |szöveg= | ||
*Összesen 5 felállás lehet: [[File:algel_pzh_2012tavasz_8_1.png|400px]] | |||
**Ebből az 1. és a 4. jó is ''(a 4. persze csak akkor, ha X az nem a főgyökér)''. | |||
**A 3. - kis módosítással - látszik, hogy szintén fenn állhat gond nélkül: [[File:algel_pzh_2012tavasz_8_2.png|100px]] | |||
**Egyedül a 2. és az 5. problémás. Ezek viszont rosszak is, hiszen mindkét esetben elmondható, hogy X-nek a fekete magassága jobbra 1, balra viszont legalább 2, mert az Y csúcsnak legalább 1-1 levél fia van. Tehát belső csúcsnál ilyen állapot nem állhat fent. | |||
*Az első 2 esetben azt bizonyítottuk, hogy levél testvére lehet levél, vagy piros csúcs. | |||
*A 3. esetben pedig azt, hogy nem lehet fekete csúcs a levél testvére. | |||
*Így be is bizonyítottuk, hogy levél testvére CSAK levél, vagy piros csúcs lehet. | |||
}} | }} | ||
[[Kategória:Infoalap]] | [[Kategória:Infoalap]] |
A lap 2013. június 15., 19:55-kori változata
2013.04.24. PZH megoldásai
1. Feladat (Van megoldás)
Egy algoritmus lépésszámáról tudjuk, hogy és tudjuk azt is, hogy . Bizonyítsa be, hogy .
Van olyan és , hogy esetén
Azt kell észrevennünk, hogy ez tulajdonképpen egy mértani sor, amire van képletünk:
, ahol , vagyis
ha (A lényeg, hogy felülről becsüljük!)
Tehát2. Feladat (Van megoldás)
Adott egy teljes bináris fa, a csúcsaiba egész számok vannak írva, összesen n darab (a fa nem feltétlenül bináris keresőfa). Adjon algoritmust, ami lépésben megkeres egy olyan csúcsot a fában, aminek a részfája kupac, és aminek a magassága a legető legnagyobb az összes ilyen csúcs közül.
- Bár nem tartozik a feladathoz, talán érdemes megjegyezzem, hogy bináris kereső fa nem is lehetne, hiszen akkor ott kapásból csak a legalsó szinten lévő elemek lehetnek kupacok (egy 1 elemet tartalmazó kupac), hiszen bináris keresőfánál balra kisebbek, jobbra nagyobbak vannak, míg kupacnál balra és jobbra is nagyobbak vannak.
- Továbbá a teljes bináris fára azért van szükség, mert így "jóval egyszerűbb" a feladat, és nem kell szívózni annak vizsgálatával, hogy az adott részfa teljes bináris fa-e (ugyebár ez a kupac egyik fontos tulajdonsága).
Minden csúcsban 3 adatot fogunk számon tartani: Érték (ez persze adott már), részfa magassága (jelüljük M-mel), és egy bool érték (IGAZ/HAMIS, jelöljük B-vel), hogy igaz-e a részfájára, hogy az kupac.
- Első lépésben a legalsó szinteken lévő csúcsok esetén .
- Legyen egy változónk, amiben tároljuk, hogy melyik csúcsra igaz, hogy az részfája a "legnagyobb" kupac (kezdeti értéke legyen mondjuk az egyik legalsó szinten lévő csúcs).
- Minden további szinten az a feladatunk, hogy megnézzük az adott csúcs (x) bal, és jobb fiát .
- Megnézzük, hogy nagyobbak-e, mint x, majd megnézzük, hogy kupac tulajdonsággal bírnak-e:
- Ha majd a változónkba belerakjuk a csúcsot. Vagyis ha mindkettő nagyobb, és mindkettő kupac tulajdonsággal bír, akkor a csúcs részfa magassága 1-gyel nagyobb lesz, mint az egyik (bal, vagy jobb) fia magassága, és kupac tulajdonságú lesz.
- Ha VAGY VAGY VAGY . Vagyis ha bármelyik feltétel nem teljesül (valamelyik fia kisebb, avagy valamelyik gyerekére nem igaz, hogy kupac tulajdonságú), akkor maga a csúcs sem lehet már kupac tulajdonságú (itt a magasságot nem is kéne beállítani, de...hát miért is ne).
- Megnézzük, hogy nagyobbak-e, mint x, majd megnézzük, hogy kupac tulajdonsággal bírnak-e:
3. Feladat (Van megoldás)
Kukori és Kotkoda egy-egy bináris fára gondolnak (nem feltétlenül bináris keresőfákra). Következik-e, hogy a két fa azonos, ha
(a) inorder bejárással kilolvasva a két fát ugyanazt a számsorozatot kapják?
(b) preorder bejárással kiolvasva a két fát ugyanazt a számsorozatot kapják?
Mindkét esetben 1-1 ellenpéldát kell szolgáltatni:
- a)
Mindkét gráfot A-B-C-D-E sorrendben olvassuk ki, de mégsem egyeznek meg, tehát nem következik.
- b)
4. Feladat
TODO
5. Feladat
TODO
6. Feladat
TODO
7. Feladat
TODO
8. Feladat (Van megoldás)
Bizonyítsa be, hogy egy piros-fekete fában egy levél testvére vagy levél, vagy piros csúcs!
- Összesen 5 felállás lehet: Fájl:Algel pzh 2012tavasz 8 1.png
- Ebből az 1. és a 4. jó is (a 4. persze csak akkor, ha X az nem a főgyökér).
- A 3. - kis módosítással - látszik, hogy szintén fenn állhat gond nélkül: Fájl:Algel pzh 2012tavasz 8 2.png
- Egyedül a 2. és az 5. problémás. Ezek viszont rosszak is, hiszen mindkét esetben elmondható, hogy X-nek a fekete magassága jobbra 1, balra viszont legalább 2, mert az Y csúcsnak legalább 1-1 levél fia van. Tehát belső csúcsnál ilyen állapot nem állhat fent.
- Az első 2 esetben azt bizonyítottuk, hogy levél testvére lehet levél, vagy piros csúcs.
- A 3. esetben pedig azt, hogy nem lehet fekete csúcs a levél testvére.
- Így be is bizonyítottuk, hogy levél testvére CSAK levél, vagy piros csúcs lehet.