À partir d’une entrée et d’une sortie désirée, déterminez la transformation nécessaire

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

  •  06-07-2019
  •  | 
  •  

Question

Je veux un programme qui réponde à ce que j'ai dit dans le titre.

Je réalise qu’il s’agit d’un problème assez vague. Je me rends également compte qu'il est presque impossible de transformer n'importe quelle entrée en une sortie , mais il semble que la gestion de cas simples devrait être réalisable.

Pour fournir un exemple concret (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"

Je soupçonne qu'il existe un mot officiel pour ce genre de chose, mais je ne sais pas ce que c'est.

Était-ce utile?

La solution

Le terme s'appelle mappage de données . C'est un vaste domaine qui peut servir à plusieurs fins, y compris la vôtre.

Les outils pour une telle tâche sont difficiles à maîtriser, alors ne vous attendez pas à ce que ce soit facile. Dans ce cas particulier, vous rechercherez des méthodologies de mappage piloté par les données . Celles-ci associent une heuristique et une statistique pour rechercher les relations pertinentes.

Heureusement, vos exemples sont bien exprimés mathématiquement et resteront vrais pour chaque élément des ensembles de données. Vous pouvez donc commencer à vous attaquer à ce problème en analysant les relations mathématiques entre éléments couplés et en essayant de valider les relations trouvées sur les paires restantes.

EDIT: Le dernier exemple ajoute une nouvelle dimension. Donc, cela doit être observable aussi. Si vous vous en tenez à une relation progressive entre les ensembles, comme c'est le cas ici (établissez d'abord la relation entre les ensembles 1 et 2, puis entre les ensembles 2 et 3), tout ira bien. Il peut même être utile de prouver plus rapidement une relation puisque vous n'avez pas besoin de rechuter si souvent. Mais des relations plus complexes entre ensembles peuvent vous obliger à traiter un problème beaucoup plus complexe. Essayez de garder les choses simples.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top