Pregunta

Quiero un programa que haga lo que dije en el título.

Me doy cuenta de que este es un problema bastante vago. También me doy cuenta de que es casi imposible descubrir cómo transformar la entrada any en la salida any , pero parece que manejar algunos casos simples debería ser factible.

Para proporcionar un ejemplo concreto (en Python):

>>> def find_transform(start, desired):
>>>     # Insert magic here

>>> find_trasform([1,2,3], [3,2,1])
"reverse"

>>> find_trasform([1,2,3,4], [[1,2], [3,4]])
"divide 2"

Sospecho que hay una palabra oficial para este tipo de cosas, pero no sé cuál es.

¿Fue útil?

Solución

Bueno, el término se llama Asignación de datos . Es un vasto campo que puede servir para algunos propósitos, incluido el suyo.

Las herramientas para tal tarea son difíciles de dominar, así que no esperes que esto sea fácil. Para este caso específico, buscará metodologías de Mapeo basado en datos . Estos incluyen una combinación de heurística y estadística para encontrar las relaciones relevantes.

Afortunadamente, sus ejemplos están bien expresados ??matemáticamente y seguirán siendo ciertos para cada elemento de los conjuntos de datos. Por lo tanto, puede comenzar a abordar este problema intentando analizar las relaciones matemáticas entre elementos emparejados e intentando validar las relaciones encontradas en los pares restantes.

EDITAR: El último ejemplo agrega una nueva dimensión. Entonces esto también debe ser observable. Si mantiene una relación progresiva entre conjuntos como es el caso allí (primero establezca la relación entre los conjuntos 1 y 2, luego entre los conjuntos 2 y 3) todo estará bien. Incluso puede ayudar a demostrar más rápidamente una relación, ya que no es necesario recurrir con tanta frecuencia. Pero las relaciones más complejas entre conjuntos pueden forzarlo a un problema mucho más complejo de manejar. Intenta que sea simple.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top