[ Foro de Pascal ]

Buscar patrón en matriz

11-Feb-2016 21:30
Invitado (Hugo)
4 Respuestas

Hola, espero que puedan ayudarme con un problema que estoy teniendo para hacer un programa que resuelva lo siguiente:

Hay una matriz YxX que tiene casilleros ocupados (representados con 1) y vacíos (0).
A su vez hay otra matriz mas pequeña con un patrón dibujado con 1. Hay que buscar dentro de la primer matriz, un espacio donde quepa el patrón de la segunda. (Donde haya un patrón de ceros, igual al de unos en la otra).

Desde ya muchas gracias.


13-Feb-2016 15:44
Invitado (pedro)

Hugo pon un ejemplo para poder ayudarte y quede mejor explicado lo que necesitas, tengo algunas dudas quiza con un ejemplo podamos entenderte mejor.


15-Feb-2016 00:49
Nacho Cabanes (+31)

Confírmanos si te refieres a esto:

Ver si una matriz como

111111111
100011111
101111111
100011111
111111111

Se podría rellenar con otra como

0000
0111
0100
0111

¿Es así?  En ese caso, ¿se considera una respuesta válida algo como la siguiente, que "cabe en el hueco" pero que no rellena por completo la matriz original?

0000
0111
0100
0100


16-Feb-2016 11:19
Invitado (Hugo)

Como dice Nacho, si el patrón "entra" en la matriz, se considera correcto, no es necesario que ocupe todo el espacio vacío.


23-Feb-2016 00:55
Nacho Cabanes (+31)

Entonces sería básicamente recorrer ambas matrices con un doble "for". Si en algún punto ambas tienen 1, "chocarían" y no se podrían superponer; si en todas las posiciones, los 1 de una coinciden con 0 de la otra sí, se podrían superponer.

Si además las matrices son de distinto tamaño, y la pequeña se podría colocar en distintas posiciones de la grande, necesitarías otro doble "for" para probar a partir de todos los posibles puntos de origen.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)