vysvetlenia riešení problémov
DESCRIPTION
Vysvetlenia riešení problémov. Heslá Peter Fillo. Heslá Peter Fillo. Pohľad na mesto Peter Lacko. Alergické červíky Matúš Horváth. Zvláštna abeceda Peter Trebatický. Simulácia robotov Martin Kvasnička. … … 265413 265431 312456 312465 312546 … …. Heslá: vysvetlenie na príklade. - PowerPoint PPT PresentationTRANSCRIPT
Vysvetlenia riešení Vysvetlenia riešení problémovproblémov
Alergické červíkyMatúš Horváth
HesláPeter Fillo
Pohľad na mestoPeter Lacko
Zvláštna abecedaPeter Trebatický
Simulácia robotovMartin Kvasnička
HesláPeter Fillo
Zisti poradové číslo permutácie: 324156
n = 6 (počet cifier)
k = 3 (prvá cifra je: 3) => prvá permutácia začínajúca číslom 3 bude 312456
… …265413265431
312456312465312546
… …
Heslá: vysvetlenie na príklade Heslá: vysvetlenie na príklade
poradové číslo permutácie 312456: (3 - 1)*5!
123456123465: : : : : :165432213456213465: : : : : :265431312456312465
… …
Permutácie začínajúce
jednotkou
Permutácie začínajúce
dvojkou
Počet permutácií začínajúcich dvojkou bude: 5!
Počet permutácií pred 312456: 2*5!=240
k-1*(n-1)!n=6, k=3
Heslá: vysvetlenie na príklade Heslá: vysvetlenie na príklade
poradové číslo permutácie (ČP) 324156 bude väčšie ako ČP 312456 (=> väčšie ako 240)
zostáva zistiť: poradie čísla 24156
chýba číslo 3 =>=> nie permutácia pre
n = 5
z 24156 urobíme permutáciu pre n = 5, nahradením číslic:
celý postup zopakujeme pre permutáciu 23145
24156
23145
Heslá: vysvetlenie na príklade Heslá: vysvetlenie na príklade
Zisti poradové číslo permutácie: 23145
n = 5 (počet cifier)k = 2 (prvá cifra je: 2)
použijeme vzorec: (k-1)*(n-1)! = (2 - 1)*(5 - 1)! = 1*4! = 24
zostane číslo: 3145 - upravíme na: 2134
Heslá: vysvetlenie na príklade Heslá: vysvetlenie na príklade
Zisti poradové číslo permutácie: 2134
n = 4 (počet cifier)k = 2 (prvá cifra je: 2)
použijeme vzorec: (k-1)*(n-1)! = (2 - 1)*(4 - 1)! = 1*3! = 6
zostane číslo: 134 - upravíme na: 123
Heslá: vysvetlenie na príklade Heslá: vysvetlenie na príklade
Zisti poradové číslo permutácie: 123
n = 3 (počet cifier)k = 1 (prvá cifra je: 1)
použijeme vzorec: (k-1)*(n-1)! = (1 - 1)*(3 - 1)! = 0*2! = 0
zostane číslo: 23 - upravíme na: 12
Heslá: vysvetlenie na príklade Heslá: vysvetlenie na príklade
Zisti poradové číslo permutácie: 12
n = 2 (počet cifier)k = 1 (prvá cifra je: 1)
použijeme vzorec: (k-1)*(n-1)! = (1 - 1)*(2 - 1)! = 0*1! = 0
zostane číslo: 2 - upravíme na: 1
Heslá: vysvetlenie na príklade Heslá: vysvetlenie na príklade
Zisti poradové číslo permutácie: 1
poradové číslo permutácie 1 pre n = 1 je: 1
Poradové číslo permutácie: 324156
240 + 24 + 6 + 0 + 0 + 1 = 271
Heslá: vysvetlenie na príklade Heslá: vysvetlenie na príklade
Alergické červíkyMatúš Horváth
HesláPeter Fillo
Pohľad na mestoPeter Lacko
Zvláštna abecedaPeter Trebatický
Simulácia robotovMartin Kvasnička
Pohľad na mestoPeter Lacko
0000000000000
...121110987654321
Pohľad na mesto: vysvetlenie na príklade Pohľad na mesto: vysvetlenie na príklade
Rozmery mesta umožňujú vytvoriť pole, do ktorého môžeme zaznačiť maximálne výšky budov
Vstup:2 5 63 10 54 8 7
0000000555550
...121110987654321
0000008810101050
...121110987654321
0000000510101050
...121110987654321
Pri načítavaní budov ukladáme do poľa maximálne výšky budov.Vstup:(2 5 6), (3 10 5), (4 8 7)
Pohľad na mesto: vysvetlenie na príklade Pohľad na mesto: vysvetlenie na príklade
Nakoniec vypíšeme údaje, ktoré sú v poli.
Výstup:2 5 3 10 5 8 7 0
0000008810101050
...121110987654321
Pohľad na mesto: vysvetlenie na príklade Pohľad na mesto: vysvetlenie na príklade
Alergické červíkyMatúš Horváth
HesláPeter Fillo
Pohľad na mestoPeter Lacko
Zvláštna abecedaPeter Trebatický
Simulácia robotovMartin Kvasnička
Alergické červíkyMatúš Horváth
Alergické červíky: vysvetlenieAlergické červíky: vysvetlenie
backtrackingrekurzívne prehľadanie všetkých možných ciest
rekurzívna funkcia hladaj(a, b)vráti dĺžku najdlhšej cestu z bodu (a, b)
pole označujúce hodnoty, na ktoré je červík už alergický
AlergickAlergické červíky : vysvetlenieé červíky : vysvetlenie
int hladaj(int a, int b) { if(<a, b> je mimo pola) return 0; if(alergia[pole[a][b]] == 1) return 0;
alergia[pole[a][b]] = 1; max = maximum( hladaj(a - 1, b), hladaj(a + 1, b), hladaj(a, b – 1), hladaj(a, b + 1)); alergia[pole[a][b]] = 0;
return max + 1;}
Alergické červíkyMatúš Horváth
HesláPeter Fillo
Pohľad na mestoPeter Lacko
Zvláštna abecedaPeter Trebatický
Simulácia robotovMartin Kvasnička
Zvláštna abecedaPeter Trebatický
Zvláštna abeceda: riešenie problémuZvláštna abeceda: riešenie problému
Porovnať každé dve po sebe idúce slováPrvé rozdielne písmenoPísmeno z prvého slova je pred písmenom z druhého slova
Vytvoriť orientovaný grafVrcholy sú písmenáA je pred B
Rušiť vrcholy, do ktorých nevedie hrana
A B
Zvláštna abeceda: príklad – zadanieZvláštna abeceda: príklad – zadanie
SlovníkXWYZXZXYZXWZWYXYZXYXYW
Zvláštna abeceda: príklad – zostrojenie grafuZvláštna abeceda: príklad – zostrojenie grafu
X Z
W Y
SlovníkXWYZXZXYZXWZWYXYZXYXYW
SlovníkXWYZXZXYZXWZWYXYZXYXYW
SlovníkXWYZXZXYZXWZWYXYZXYXYW
SlovníkXWYZXZXYZXWZWYXYZXYXYW
SlovníkXWYZXZXYZXWZWYXYZXYXYW
SlovníkXWYZXZXYZXWZWYXYZXYXYW
Zvláštna abeceda: príklad – rušenie vrcholov Zvláštna abeceda: príklad – rušenie vrcholov
X Z
W Y
Výstup
VýstupX
VýstupXZ
VýstupXZY
VýstupXZYW
X Z
W Y
Z
W YYW
Alergické červíkyMatúš Horváth
HesláPeter Fillo
Pohľad na mestoPeter Lacko
Zvláštna abecedaPeter Trebatický
Simulácia robotovMartin Kvasnička
Simulácia robotovMartin Kvasnička
Simulácia robotov: spôsoby riešeniaSimulácia robotov: spôsoby riešenia
podľa alokácie poľastatickydynamicky
podľa veľkosti poľapole n×m → veľa pamäte4 polia 1×n
Simulácia robotov: štruktúra programuSimulácia robotov: štruktúra programu
while (mám príkazy AND ešte som sa nestratil) zisti príkaz (case – P, L, V)
case smer (príkaz V)
0 (sever)
1 (východ)
2 (juh)
3 (západ)
Simulácia robotov: pohyb doľavaSimulácia robotov: pohyb doľava a doprava a doprava
L → if (smer = 0) then smer = 3 else smer = smer -1 → smer = (smer + 3) mod 4
P → if (smer = 3) then smer = 0 else smer = smer +1
→ smer = (smer + 1) mod 4
Západ = 3 Východ = 1
Juh = 2
Sever = 0
Simulácia robotov: pohyb dopreduSimulácia robotov: pohyb dopredu
premenná indikujúca stratenie robota (Stratil)4 polia typu boolean (int)
poleSpoleVpoleJpoleZ
prvok v poli je true, ak sa na ňom robot stratil (daným smerom)horné hranice mapy – maxx, maxy
Ďakujeme za pozornosťĎakujeme za pozornosť