|
Programiranje Programski jezici, tehnike, alatke... |
|
Alatke vezane za temu | Vrste prikaza |
15.7.2011, 21:11 | #1 |
Član
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
|
Lokalna varijabla ... ?
Imam strukturu:
Kod:
struct Queen { int var; vector<int> domen; bool *visited; }; domen - moguce vrijednosti visited - true ako je vrijednost iskoriscena, false ako nije Napravio sam rekurzivnu funkciju: Kod:
int CSP(vector<struct Queen> Q, int index, int N) { if(N == index) { print var of All Q. Finish = true; } while(!Finish) { nadji prvu slobodnu vrijednost zabiljezi da je ta vrijednost iskoriscena ako vrijednost nije nadjena vrati se nazad Q[index].var = Nadjena_vrijednost ForwardCheck() CSP(Q, index+1, N) } } Primer: Ako predam broj x funkciji: Kod:
f(int x) { if(x == 10) return 0 else { x++; f(x); } } Medjutim ja imam problem... moj bool *visited uvijek ostaje isti.. isao ja napred ili nazad. Na primer ako je redosled "true true false false" posle 3 poziva a posle 2 je bio "true false false false" i kad se ja vratim iz 3 u 2 umjesto da bude "true false false false" on ostane isti kao iz 3 "true true false false" Nadam se da me kapirate na sta mislim. Kako da zaobidjem ovo.. tako da visited u svakom pozivu funkcije CSP bude lokalan, a i da se pri povratku vrati na staro stanje a ne da ostane isti .... Poslednja ispravka: clzola (16.7.2011 u 12:24) |
15.7.2011, 21:33 | #2 |
Veteran
Član od: 27.12.2005.
Lokacija: Vremenske Grobnice, Hiperion
Poruke: 680
Zahvalnice: 99
Zahvaljeno 124 puta na 82 poruka
|
Re: Lokalna varijabla ... ?
visited je pokazivač na objekat tipa bool. Kada se objekat tipa Queen kopira, pri čemu se koristi podrazumevani konstruktor jer programer nije definisao svoj, kopira se vrednost polja visited, ali ne i ono na šta pokazuje.
Kako rešiti problem? Staviti da je visited tipa bool, a ne bool* . Ako visited koristiš kao niz, onda iskoristi vector<bool>. Iz kog razloga je visited uopšte bool*? |
15.7.2011, 21:55 | #3 |
Član
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
|
Re: Lokalna varijabla ... ?
visited koristim kao niz
a stavio sam ga bool, zato sto samo treba da mi pamti da li je vrijednost iskoriscena ili ne, true ako jeste, false ako nije mogao sam isto i sa int, 1 za DA i 0 za NE, ali mi je nekako lakse sa bool... Koristio sam pokazivac jer nikad se ne zna koliki ce broj kraljica da bude, tako da kasnije mogu da alociram memoriju za taj niz... Sad sam evo odradio sa vector<bool> i dalje isto :/ evo citavi kod: http://paste2.org/p/1522435 Fajl test.in sadrzi ukupan broj kraljica (Ja za sad koristim 4) Radi se o tome sto treba da istampam pozicije kraljica takve da se one ne napadaju medjusobno koristeci CSP Backtracking Ovaj kod sto sam ja napisao je tacan, jedino je problem sto mi ostaju te vrijednosti true i false zapamcene zauvijek... umjesto da pri svakom pozivu budu lokalne :/ |
15.7.2011, 22:02 | #4 |
Veteran
Član od: 27.12.2005.
Lokacija: Vremenske Grobnice, Hiperion
Poruke: 680
Zahvalnice: 99
Zahvaljeno 124 puta na 82 poruka
|
Re: Lokalna varijabla ... ?
Kod:
void ForwardCheck(vector<struct Queen> &Q, int index, int N) |
15.7.2011, 22:14 | #5 |
Član
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
|
Re: Lokalna varijabla ... ?
Da, Ja treba da izmeni citav vektor Q, tako da mi ostanu samo ona polja koja mogu da iskoristim za sledecu kraljicu... Ali u slucaju povratka, treba da se vrace na staro stanje...
Q ima neke vrednosti neka bude Q1 pozivam ForwardCheck za Q1 i ono se menja pozivam CSP za Q1 sad je to Q2 pozivam ForwardCheck za Q2, menja se pozivam CSP za Q2 sad je to Q3 u Q3 ne postoji polje za trecu kraljicu po redu, vrace se nazad sad je opet Q2 uzimam drugo polje za Q2 pozivam ForwardCheck za Q2 menja se pozivam CSP za Q2 ... Itd... Ovo je sve radjeno prema - Constraint Satisfaction Problem EDIT Uspeo sam da resim problem... Prebacio sam poziv funkcije CSP() unutar ForwardCheck Funkcije, i sad radi Poslednja ispravka: clzola (15.7.2011 u 22:30) |
15.7.2011, 22:27 | #6 |
Veteran
Član od: 27.12.2005.
Lokacija: Vremenske Grobnice, Hiperion
Poruke: 680
Zahvalnice: 99
Zahvaljeno 124 puta na 82 poruka
|
Re: Lokalna varijabla ... ?
Hm... pogledaću sutra, možda provalim o čemu se radi... nije mi glava trenutno na mestu
|
15.7.2011, 22:38 | #7 |
Član
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
|
Re: Lokalna varijabla ... ?
Sad bih htio da pitam, posto sam tek danas cuo za CSP (Constraint Satisfaction Problem) i dobio ovaj zadatak da ga uradim pomocu toga.. Da li je ovo moje dobro, da li je to to i da li sam dobro definisao problem:
Varijable array Q[1...N] Domen polje [1...N] Ogranicenja Q[i] != Q[j] maknuti odmah sva polja koja Q[i] napada I da li je algoritam u redu... ? |
18.7.2011, 13:13 | #8 | |
V.I.P. Programiranje
|
Re: Lokalna varijabla ... ?
Citat:
|
|
18.7.2011, 21:22 | #9 | |
Član
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
|
Re: Lokalna varijabla ... ?
Napisao sam to u jednom od postova...
Citat:
Primer: Input: 4 Output: 2 4 1 3 |
|
19.7.2011, 23:52 | #10 |
V.I.P. Programiranje
Član od: 29.8.2007.
Lokacija: Valjevo
Poruke: 1.349
Zahvalnice: 983
Zahvaljeno 371 puta na 280 poruka
|
Re: Lokalna varijabla ... ?
Jel ovde o sahu rec? Kraljica u sahu se krece dijagonalno, vertikalno i horizontalno tako ako bi unos bio recimo 2 nebi mogao da postavis kraljice na tablu 2x2 a da se ne napadaju, mislim da je isto i za 3x3, 4x4.
|
20.7.2011, 0:24 | #12 |
Član
Član od: 14.4.2010.
Lokacija: Podgorica
Poruke: 332
Zahvalnice: 61
Zahvaljeno 11 puta na 11 poruka
|
Re: Lokalna varijabla ... ?
da sahovska tabla, pa dobro mislio sam da se podrazumjeva da je ulaz takav da ce uvijek postojati resenje... i najmanji broj N koji zadovoljava ove uslove je 4 tako da ide od 4 pa nadalje ...
|
Bookmarks sajtovi |
Alatke vezane za temu | |
Vrste prikaza | |
|
|
Slične teme | ||||
tema | temu započeo | forum | Odgovora | Poslednja poruka |
Tržišni udeo operativnih sistema: globalna i lokalna slika | Nergal | Operativni sistemi | 38 | 27.7.2010 18:52 |
Lokalna mreza kroz ruter | Bond_007 | Komunikacioni uređaji i umrežavanje | 8 | 18.2.2007 17:01 |