90 likes | 206 Views
Dominá (Semestrálny projekt). Maroš Dzuriš PF UPJŠ ÚINF 2008. Obsah. Úloha Riešenie problému Otázky. Úloha. Zadaná úloha: Uvažujme N kociek domina naukladaných do radu. Každá kocka má dve čísla Ai a Bi. Spočítajme rozdiel súčtov v hornom riadku a dolnom riadku:
E N D
Dominá(Semestrálny projekt) Maroš Dzuriš PF UPJŠ ÚINF 2008
Obsah • Úloha • Riešenie problému • Otázky
Úloha Zadaná úloha: Uvažujme N kociek domina naukladaných do radu. Každá kocka má dve čísla Ai a Bi. Spočítajme rozdiel súčtov v hornom riadku a dolnom riadku: Jedno otočenie je otočenie jednej kocky domina opačne – výmena jej čísel. Hľadáme najmenší počet otočení taký, aby rozdiel Δ bol čo najmenší.
Riešenie problému • rozdelenie problému na menšie, teda budeme uvažovať 1,2...N kociek domina postupne • celkový počet hodnôt na dominách: • každému dominu spravíme číslo • súčet • Oi,j - minimálny počet otočení niektorých domín z množiny 1,...,i tak, že súčet hodnôt v hornom riadku na dominách 1,...,ipo otočení bude j
Riešenie problému • čísla Oi,j budeme počítať postupne pre j=1,2,...S • nech máme vypočítané všetky čísla O1,j, O2,j,..., Ok-1,j pre j=1,2,...S chceme vyrátať pre k-te domino • pre každú hodnotu Ok,j , j=1,2,...S musíme zistiť, či existuje hodnota pre j • overíme, čí existuje hodnota Ok-1,j-Ak
Nájsť hodnotu Ok-1,j-Ak ? • pozrieť sa, či vieme pridať ďalšie domino do radu tak, aby existovala hodnota súčtu j pre k-te domino, ktorá vyžaduje existenciu hodnoty súčtu j-Ak, ktorá patrí k-1 dominu. • musí platiť j-Ak>0, keďže máme hodnoty j=1,2,...S. • ak existuje: Ok,j= Ok-1,j-Ai
Otočenie domina • zaujíma nás hodnota Ok-1,j-Bk • zistíme podobne ako keď neotáčame • ak existuje, tak Ok,j = Ok-1,j-Bk + 1 • ak existujú obe(otoč./neotoč.) tak: Ok,j = minimum(Ok-1,j-Ak , Ok-1,j-Bk+1).
A kde je riešenie??? • nájsť medzi hodnotami ON,j taký súčet horných častí dominových kociek j, ktorý vieme dosiahnuť otáčaním domín • najmenší rozdiel: • rovnakých rozdielov, vyberieme ten, ktorý preklopí oproti pôvodnému stavu menej domín
Ďakujem za pozornosť! Priestor pre Vaše otázky...