[ MilanRS @ 07.06.2006. 21:38 ] @
Postaviti na šahovskoj tabli 8 topova tako da se medjusobno ne napadaju. |
[ MilanRS @ 07.06.2006. 21:38 ] @
[ 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.
Copyright (C) 2001-2024 by www.elitesecurity.org. All rights reserved.
|