Kezdőoldal » Számítástechnika » Programozás » Mátrix szigetben kéne nekem...

Naruto-Kunka kérdése:

Mátrix szigetben kéne nekem segitség? Feladat lent.

Figyelt kérdés
Adott egy N×N es mátrix, amelynek minden száma 1-es vagy 0. Ebben a számhalmazban kell megtalálni a „szigeteket” (1-esek halmazát). Tehát olyan 1-esket keressünk, amelyeket 0 vagy a mátrix szélei vesznek körben. Megoldásban a megtalált „szigeteket” el kell pusztítani, tehát 0-vá kell alakítani egy külön eljárással. A BEMENET. TXT állomány első sora a mátrix méretét mutatja, alá pedig, a mátrix elemei kerülnek szóközzel elválasztva. Az eredmény („szigetek” száma) KIMENET. TXT fájlba kerül.

2017. jún. 27. 09:29
 1/7 anonim ***** válasza:
k
2017. jún. 27. 09:36
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:

"Tehát olyan 1-esket keressünk, amelyeket 0 vagy a mátrix szélei vesznek körben"

Csak így lehetséges mert ha berakok egy vagy több egyest a mátrixba az körül fogják venni mindenképp nullák vagy nullák és a mátrix szélei. Azt akarom ezzel mondani hogy olyan 1 es vagy eggyesek nem létezhetnek a mátrixba amelyekre nem igaz amit fentebb írtam. Ezért nem lessz olyan egyes ami nem felel meg annak a feltételnek amit a kérdésedben írtál. Így a végeredmény mindig egy nullákkal feltöltött tömb lesz. Ez miatt pedig nem érdemes a szigetek vizsgálatával foglalkozni csak végigmész a mátrixon és ahol nem nulla van azt átt írod nullára és kész.

2017. jún. 27. 16:38
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:

Ez egy FloodFill algoritmus. Rekurzívan végigmész a szomszédos cellákon.


SZIGET (mtx,x,y)

HA (mtx[x,y] == 0) VISSZATÉRÉS

mtx[x,y] = 0

HA (VALAMELYIK SZOMSZÉD ELEM == 1) SZIGET(mtx,SZOMSZÉD_X,SZOMSZÉD_Y)

VÉGE

2017. jún. 29. 07:38
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:
A feladat leírása nagyon nagyon messze van bármiféle floodfill algoritmustól.
2017. jún. 29. 08:10
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:

Dehogynem:

(0,0)-ból indulva floodfill-ezi az 1-eseket 0-ra. Majd (1,0)-ból stb... Ahány 1-est talált annyi sziget van. Mivel az adott mezőn a floodfill eltünteti a 0-kat így ha a következő cellát vizsgálva 1-est találunk az már egy másik sziget.


Kicsit bonyolultan írtam le de remélem érted.

2017. jún. 29. 09:22
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:

De ehhez nem kell semmilyen rekurzív floodfill algoritmus.

Végigmegy egyesével az egyik sarokból indulva az összes cellán és mindent 0-ra állít. Ennyit kér a feladat.

3 sor kód, 30 másodperc alatt megírható.

2017. jún. 29. 09:37
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:

"

Az eredmény („szigetek” száma) KIMENET. TXT fájlba kerül.

"


És akkor ezt hol teszi meg?

2017. jún. 29. 18:25
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!