Presentation is loading. Please wait.

Presentation is loading. Please wait.

(カックロ ) Ivo Ivanišević Ena Melvan

Similar presentations


Presentation on theme: "(カックロ ) Ivo Ivanišević Ena Melvan"— Presentation transcript:

1 (カックロ ) Ivo Ivanišević Ena Melvan
Kakuro (カックロ ) Ivo Ivanišević Ena Melvan

2 1.Uvod

3 Prvi put objavljen u Dell Magazine 1966.godine pod nazivom Cross Sum
1980. god u Japanu doživio pravi bum (izdavačka kuća Nikoli prodala preko milijon knjiga o njima) Dobiva naziv Kasan Kurosu (kombinacija japanske riječi za zbrajanje i izgovora riječi “cross”) 6.god kasnije naziv skraćen u Kakuro Prodor na zapad: tek 2005.god kada The Guardian i Daily Mail započinju sa njihovim dnevnim objavljivanjem

4 Kombinatorni problem raspodjele brojeva na ploči
Cilj je ispuniti bijela polja prema zadanim uvjetima Zadan je broj kojeg treba rastaviti na određeni broj pribrojnika u retku/stupcu Pribrojnici smiju biti brojevi od 1,....,9 i ne smiju se ponavljati Npr. 6=1+2+3 ; 1+5 ; 2+4, ali NE 3+3

5

6 2.Implementacija 2.1 Programsko okruženje C++ windows okruženje

7 2.2 Implementacija ploče Tablica reprezentirana kao matrica koja se sastoji od klasa Elementi klase: stanje,s,p,r,tmpr,tmps,dr,ds Zašto? stanje=‘s’  (s,p,r,tmpr,tmps,dr,ds)=(7,0,0,0,7,0,2) stanje=‘r’  (s,p,r,tmpr,tmps,dr,ds)=(0,0,13,13,0,3,0)

8 Informacije se čitaju iz 3 datoteke VRIJEDNOSTI DULJINE STANJA
X 9 Informacije se čitaju iz 3 datoteke VRIJEDNOSTI DULJINE STANJA (0,0,0,0,0,0,0) X S (9,0,0,0,9,0,1) R P (0,0,9,9,0,1,0) (0,0,0,0,0,0,0)

9 2.3 Implementacija algoritma
Backtracking algoritam Pretraživanje prostora stanja u dubinu 5 pomoćnih funkcija Osnova algoritma: -četiri “if bloka” koji određuju četiri moguća stadija upisa u matricu

10 if(x[r.first][r.second].dr>1 && x[s.first][s.second].ds>1)
{ if(x[r.first][r.second].tmpr-i>0 && x[s.first][s.second].tmps-i>0) x[t.first][t.second].p=i; x[r.first][r.second].tmpr=x[r.first][r.second].tmpr-i; x[r.first][r.second].dr=x[r.first][r.second].dr-1; x[s.first][s.second].tmps=x[s.first][s.second].tmps-i; x[s.first][s.second].ds=x[s.first][s.second].ds-1; if(backtrack(x,tmp,temp)==true) return(true); } else x[t.first][t.second].p=0; x[r.first][r.second].tmpr=x[r.first][r.second].tmpr+i; x[r.first][r.second].dr=x[r.first][r.second].dr+1; x[s.first][s.second].tmps=x[s.first][s.second].tmps+i; x[s.first][s.second].ds=x[s.first][s.second].ds+1;

11 3. Složenost algoritma Eksponencijalna složenost
O(9ˆn),n broj slobodnih mjesta za upis Složenost uvelike varira ovisno o zadanom problemu U specijalnim slučajevima O(n)?!?!

12 4.Testiranja i… Testiranja su izvršena nad 3 ploče
Dimenzije ploča 6*6, 8*8 te 16*16 Rješavanja većih problema otežano stvaranjem ispravnih datoteka za rad programa Dodatno je testirano vrijeme i brzina izvođenja programa

13 …rezultati Svi test primjeri su točno riješeni.
Sva rješenja test primjera su imala vrijeme izvršavanja <0.5 sekunde Brzina izvodjenja je ispod 1μs za sva tri problema

14 4.Literatura


Download ppt "(カックロ ) Ivo Ivanišević Ena Melvan"

Similar presentations


Ads by Google