[ MilanRS @ 07.06.2006. 21:38 ] @
Postaviti na šahovskoj tabli 8 topova tako da se medjusobno ne napadaju.
[ NrmMyth @ 07.06.2006. 21:52 ] @
Ti ne znas kako postaviti 8 topova na plocu da se ne napadaju?
Ti zelis da ti to program izvede?
Ti zelis jedno ili sva moguca rijesenja?

???
[ IDE @ 07.06.2006. 23:06 ] @
pa postavi ih po dijagonali...
[ MilanRS @ 08.06.2006. 13:22 ] @
Samo tako mi glasi zadatak.
Nemam pojma sta treba. Shvatio sam da se mogu postaviti po dijagonali, ali ne shvatam
kako to da uradim u c++.
Valjda se odnosi na proizvoljnu kombinaciju.
[ Igor Gajic @ 08.06.2006. 15:35 ] @
Probaj ovaj algoritam.

Imas dvodimenzionalni niz 8x8. Elementi su 0 ili 1.
Postavljas po jednu jedinicu(1) u svakom redu.
Znaci imas 8 ugnezdjenih petlji i svaka ide od 0 do 7.

Otprilike:
for(i=0;i<8;i++)
{
memset(&tabla[0],0,sizeof(int)*8) // Ocistis 0-tu vrstu
tabla[0]=1; // Postavis novu vrednost

for(j=0;j<8;j++)
{
memset(&tabla[1],0,sizeof(int)*8) // Ocistis 1-vu vrstu
tabla[1][j]=1; // Postavis novu vrednost
....

Tako generises mogucnosti. Pretpostavljas da dva topa ne smeju biti u istom redu. Umesto 2^64 mogucnosti ti svodis problem na 2^24 mogucnosti.Sto je manje-vise prihvatljivo. I kada generises
jednu mogucnost proveravas je sledecim algoritmom: saberes vrednosti u jednoj koloni. I ukoliko je suma
suma po svakoj koloni == 1 onda se topovi ne napadaju.I to je to, samo jos da kodiras.

Pozdrav.
[ Marko Medojević @ 10.06.2006. 06:22 ] @
Citat:

saberes vrednosti u jednoj koloni. I ukoliko je suma
suma po svakoj koloni == 1 onda se topovi ne napadaju.

Možda je bolje da sabere vrednost po dijagonali (glavnoj i sporednoj) pa ako je vrednos jedne od tih dve 8 onda se topovi ne napadaju. Tako će biti manje koraka.

[ #Ninja# @ 10.06.2006. 11:45 ] @
Ali topovi mogu biti i rasuti po tabli, ne moraju biti na dijagonali da se ne bi napadali. Bitno je samo na nema dva topa u istoj koloni ili redu.