vysvetlenia riešení problémov

Post on 07-Jan-2016

40 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

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

TRANSCRIPT

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ť

top related