Bei einem gegebenen Eingang und gewünschter Ausgang, herauszufinden, um die benötigte Transformation

StackOverflow https://stackoverflow.com/questions/1414034

  •  06-07-2019
  •  | 
  •  

Frage

Ich möchte ein Programm, das tut, was ich im Titel gesagt.

Ich weiß, dass dies ein ziemlich vagees Problem. Mir ist auch klar, dass herauszufinden, wie zu transformieren jeder Eingabe in jeder Ausgang fast unmöglich ist, aber es scheint wie ein paar einfache Bearbeitung von Fällen sollte machbar sein.

ein konkretes Beispiel liefern (in 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"

Ich vermute, es gibt ein offizielles Wort für diese Art der Sache, aber ich weiß nicht, was es ist.

War es hilfreich?

Lösung

Nun wird der Begriff namens Data Mapping . Es ist ein weites Feld, das ein paar Zwecke, einschließlich Sie dienen kann.

Die Werkzeuge für eine solche Aufgabe nur schwer zu meistern, also nicht erwarten, so einfach zu sein. Für diesen speziellen Fall werden Sie auf der Suche nach Datengetriebene Mapping Methoden. Es handelt sich dabei eine Kombination von Heuristik und Statistiken die relevanten Beziehungen zu finden.

Zum Glück Ihre Beispiele sind gut mathematisch ausgedrückt und wird für jedes Element der Datensätze treu bleiben. So können Sie dieses Problem starten Bewältigung, indem Sie versuchen mathematische Beziehungen zwischen paarigen Elementen zu analysieren und zu versuchen, alle gefundenen Beziehungen zu den übrigen Paaren zu überprüfen.

EDIT: Das letzte Beispiel fügt eine neue Dimension. So muss dies auch zu beobachten sein. Wenn Sie zu einer fortschreitenden Beziehung zwischen den Sätzen halten wie es der Fall ist (erste Beziehung zwischen Satz einzurichten 1 und 2, dann zwischen Satz 2 und 3) wird alles gut. Es kann noch schneller eine Beziehung unter Beweis stellen, da Sie nicht brauchen, um so oft helfen Rekursion. Aber komplexere Beziehungen zwischen den Sätzen können Sie ein viel komplexeres Problem zwingen, zu behandeln. Versuchen Sie es einfach zu halten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top