Program-kraljica u sahu

poruka: 3
|
čitano: 1.336
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
14 godina
neaktivan
offline
C++ programiranje zadatak: Kraljica u sahu

Evo jos jedan od zadataka u c++ za koje bih volio cuti vase misljenje i na koji nacin cete vi rjesiti njega :)

 

 
0 0 hvala 0
18 godina
offline
Program-kraljica u sahu

Ja bi tu iskoristio simetriju kvadratne matrice, jer prevedeno na logiku kvadratne matrice kraljica ima četiri načina kretanja:

- horizontalno

- vertikalno

- glavna dijagonala

- pomoćna dijagonala

 

Mogu se uočiti pravilnosti u broju polja dosega za pozicije:

4 X 4

9    9    9    9
9   11  11   9
9   11  11   9
9    9    9    9

 

5 X 5

12    12    12    12    12
12    14    14    14    12
12    14    16    14    12
12    14    14    14    12
12    12    12    12    12

 

Iz ovoga je jasno da ne moramo računati svaku pojedinu poziciju, nego jednostavno prelaziti na sve manje kvadrate u kvadratu uz dekrement veličine kvadrata 2, a istovremeno uz inkrement broja polja u dosegu za 2. Kad veličina kvadrata dosegne 0 ili manje, dobili smo ukupan broj polja u dosegu kraljice za sva polja.

 

#include<iostream>
using namespace std;


double ProsjecanBrojNapadnutihPolja(int dimMatrica)
{
    int suma = 0;
    int dosegKraljice = (dimMatrica-1)*3;
    int dimSubMatrica = dimMatrica;

    while(dimSubMatrica>0)
    {
       if(dimSubMatrica > 1)
       {
          suma += dosegKraljice * ((dimSubMatrica*dimSubMatrica) - ((dimSubMatrica-2)*(dimSubMatrica-2)));
       }
       else
       {
          suma += dosegKraljice;
       }
       dosegKraljice += 2;
       dimSubMatrica -= 2;

    }
    return suma / (double) (dimMatrica*dimMatrica);
}


int main()
{
    int dimMatrica;
    cin>> dimMatrica;
    cout<< ProsjecanBrojNapadnutihPolja(dimMatrica) << endl;
    return 0;
}

 

Što se tiče one funkcije izračuna broja polja u dosegu za pojedinu poziciju, nju riješiti manipulacijom horizontale, vertikale i glavne i pomoćne dijagonale.

 

Poruka je uređivana zadnji put ned 15.1.2012 17:32 (Floki).
 
0 0 hvala 1
14 godina
neaktivan
offline
Program-kraljica u sahu

Upravo sam i ja na ovaj nacin krenuo razradjivati program-preko matrice ali sam se na kraju izgubio totalno :)

 

Hvala jos jednom na pomoci :)

 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice