La situación es la siguiente:¿Cómo puedo verificar si las coordenadas cartesianas forman un rectángulo de manera eficiente?
- Hay N matrices.
- En cada array (0..N-1) hay (x, y) tuplas (coordenadas cartesianas) almacenados
- La longitud de cada matriz puede ser diferente
I quieren extraer el subconjunto de combinaciones de coordenadas que componen un total de de tamaño N. En otras palabras; todas las coordenadas cartesianas son adyacentes entre sí.
Ejemplo:
findRectangles({
{*(1,1), (3,5), (6,9)},
{(9,4), *(2,2), (5,5)},
{(5,1)},
{*(1,2), (3,6)},
{*(2,1), (3,3)}
})
produce el siguiente:
[(1,1),(1,2),(2,1),(2,2)],
...,
...(other solutions)...
No hay dos puntos pueden provenir de un mismo conjunto.
Primero calculé el producto cartesiano, pero esto rápidamente se vuelve inviable (mi caso de uso en este momento tiene 18 conjuntos de puntos con cada arreglo conteniendo aproximadamente 10 coordenadas diferentes).
posiblemente error tipográfico: ¿dónde está '(2,1)' en su ejemplo? ¿Puedes elegir cualquier punto de cualquier matriz? no puedes elegir dos puntos de la misma matriz? – ninjagecko
Se corrigió el error tipográfico; no, no puedes elegir dos puntos de la misma matriz. – bojangles
¿Son solo rectángulos alineados con los ejes considerados, o hay rectángulos adecuados? –