La situation est la suivante:Comment vérifier si les coordonnées cartésiennes constituent efficacement un rectangle?
- Il existe N réseaux.
- Dans chaque tableau (0..N-1) il y a (x, y) tuples (coordonnées cartésiennes) stockée
- La longueur de chaque rangée peut être différent
Je veux extraire le sous-ensemble des combinaisons de coordonnées qui constituent un retangle complet de en d'autres termes; toutes les coordonnées cartésiennes sont adjacentes les unes aux autres.
Exemple:
findRectangles({
{*(1,1), (3,5), (6,9)},
{(9,4), *(2,2), (5,5)},
{(5,1)},
{*(1,2), (3,6)},
{*(2,1), (3,3)}
})
donne le résultat suivant:
[(1,1),(1,2),(2,1),(2,2)],
...,
...(other solutions)...
Pas deux points peuvent provenir de la même série. Je viens d'abord de calculer le produit cartésien, mais cela devient rapidement infaisable (mon cas d'utilisation à l'heure actuelle comporte 18 tableaux de points, chaque tableau contenant environ 10 coordonnées différentes).
probablement typo: où est '(2,1)' dans votre exemple? pouvez-vous choisir n'importe quel point de n'importe quel tableau? vous ne pouvez pas choisir deux points du même tableau? – ninjagecko
Correction de la faute de frappe; Non, vous ne pouvez pas choisir deux points dans le même tableau. – bojangles
Seuls les rectangles sont-ils alignés avec les axes considérés ou des rectangles sont-ils appropriés? –