Colección de citas famosas - Consulta de diccionarios - Un problema de algoritmo (preferiblemente usando Java)

Un problema de algoritmo (preferiblemente usando Java)

¡Echa un vistazo, no parece fácil!

Puedes combinar cada objeto rectangular con solo dos propiedades de longitud, largo y ancho.

Cuanto menos espacio haya entre ellos, mejor, es decir, cuanto más cerca de su zona, ¡mejor!

Sin embargo, el punto clave reside en este proceso de vinculación. Cuanto más cercanas estén las longitudes, más se superpondrán sus bordes, pero esto parece difícil. Si existe un algoritmo correspondiente para los gráficos de atributos, ¡eche un vistazo atrás cuando tenga tiempo!

_______________________________________________________________

También debes agregarle un atributo al rectángulo: dirección, que es colocarlo horizontal o verticalmente. En cuanto a la inclinación, ¡no lo pienses!

Algoritmo:

1) Puedes encontrar rectángulos con condiciones equiláteras. Primero, empalma estos rectángulos en un rectángulo.

Luego descubre si hay un rectángulo. en el rectángulo. El lado del rectángulo es igual a la suma de varios lados del rectángulo, uniendo estos rectángulos (pero esto puede no ser óptimo). Por último, busca aquellos empalmes con lados muy juntos para saber que no hay nuevos rectángulos! Pero la base matemática no es suficiente y no hay forma de demostrar formalmente el valor mínimo.

2) Además, se puede utilizar el método exhaustivo (aplicable cuando N no es grande), que es completamente alcanzable, es decir, una disposición combinada (incluida una disposición completa de posiciones y direcciones relativas (dos direcciones de rotación)), como N =2, hay cuatro combinaciones válidas de sus posiciones relativas. Calcula cada posibilidad y elige la más pequeña como OK.

Sin embargo, la eficiencia de este algoritmo es relativamente baja. Por supuesto, muchos de ellos se repiten y el algoritmo se puede optimizar.

Resumen: Lo anterior está escrito pensando, de forma muy casual. Pero el segundo algoritmo es definitivamente factible, pero necesita ser optimizado. Si no tienes suficientes conocimientos matemáticos, sólo podrás llegar hasta cierto punto. En cuanto a la implementación, es fácil, siempre que el algoritmo sea bueno. ¡Por razones de tiempo, detengámonos aquí! ~ ¡Pero tu tema es bastante interesante! Si alguien tiene un buen algoritmo, con anticipación...