Kezdőoldal » Számítástechnika » Programozás » Java - 2 db 2D mátrix között...

Java - 2 db 2D mátrix között hogyan számolják össze az egyező részleteket?

Figyelt kérdés

Van 2 db 2D nátrixom:


a[][] <-- 8x8 méretű nagyobbik

b[][] <-- 3x3 méretű kisebbik

A b[][] így néz ki:

_X_

XXX

_X_


Az a[][]-ban ez a minta többször is előfordul, és a feladat az egyezések megszámolása.

Ehhez kérem a segítségeteket.



2018. máj. 20. 14:53
 1/4 anonim ***** válasza:
Meddig jutottál?
2018. máj. 20. 15:12
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:

Viszonylag egyszerű.


Szóban hogyan keresel egy betűt? Végiglépegetsz a betűin, ha egyezés van, meg is vagy.


Szóban hogyan keresel egy részt? Ugyanúgy ahogy betűt, csak a teljes rész egyezőségét ellenőrzöd.


Kétdimenziós tömbnél ugyanez a megoldás. Végig kell lépegetned rajta. [0][0]-tól indulsz, [5][5] lesz a vége, és minden lépésben ellenőrzöd, hogy a kiindulóponttól jobbra/lefelé lévő 3x3-as mező egyezik-e a b tömbbel.


Pl:


A tömb:

1 2 3

4 5 6


B tömb:

5 6


1-től indulva: 1 != 5, tehát itt nem lesz jó

2-től indulva: 2 != 5, tehát nem jó

(3 kimarad)

4-től indulva: 4 != 5, tehát nem jó

5-től indulva: 5 == 5, OK, következő: 6 == 6, OK


Tehát benne van.

2018. máj. 20. 15:23
Hasznos számodra ez a válasz?
 3/4 A kérdező kommentje:

boolean[][] img; // nagyobbik

boolean[][] e; // kisebbik


// ...


int w = e[0].length, h = e[1].length, n = 0, x = 0, y = 0;


for (int i = 0; i < img[0].length; i++) {

for (int j = 0; j < img[1].length; j++) {

for (int k = 0; k < w; k++) {

for (int l = 0; l < h; l++) {

if (img[i][j] == e[k][l]) {


}

}

}

}


Idáig jutottam, ez csak egy része a dolognak, csak itt már nagyon belezavarodtam.

2018. máj. 20. 15:46
 4/4 anonim ***** válasza:

Meg lehet csinálni úgy is, ahogy azt elkezdted.

A nagy mátrixban meghatározol egy pontot, ez a bal felső sarok, ez lesz a kiindulópont. Innen végzel iterációt a kis mátrix méreteinek megfelelően. Az összehasonlító mátrix méretei megfelelnek a kis mátrixénak, és az összehasonlítás eredményét tárolja.

Még vigyázni kell az indexhatárokkal, különben az első sor végén elszáll a program, IndexOutOfBoundsExceptionnel.

2018. máj. 21. 18:29
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!