Upload
dinesh
View
32
Download
2
Embed Size (px)
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 Presentation
Citation preview
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ť