Download presentation
Presentation is loading. Please wait.
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
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.