Dada uma entrada e de saída desejada, para fora da figura transformação necessária

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

  •  06-07-2019
  •  | 
  •  

Pergunta

Eu quero um programa que faz o que eu disse no título.

Eu percebo que este é um problema muito vago. Eu também percebo que descobrir como transformar qualquer de entrada em qualquer de saída é quase impossível, mas parece que lidar com alguns casos simples devem ser viável.

Para fornecer um exemplo concreto (em 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"

Eu suspeito que há uma palavra oficial para este tipo de coisa, mas eu não sei o que é.

Foi útil?

Solução

Bem, o termo é chamado Mapeamento de Dados . É um campo vasto que pode servir algumas finalidades, incluindo o seu.

As ferramentas para essa tarefa um são difíceis de dominar, por isso não esperamos que isso seja fácil. Para este caso específico, você vai estar à procura de mapeamento de dados-Driven metodologias. Estes envolvem uma combinação de heurísticas e estatísticas para encontrar as relações relevantes.

Felizmente seus exemplos são bem expressa matematicamente e continuará a ser válido para todos os elementos dos conjuntos de dados. Então você pode começar a lidar com este problema, tentando analisar as relações matemáticas entre elementos emparelhados e tentar validar quaisquer relações encontradas nos pares restantes.

EDIT: O último exemplo adiciona uma nova dimensão. Portanto, este deve ser observável também. Se se mantiver uma relação progressiva entre as séries como é o caso lá (primeiro estabelecer relação entre set 1 e 2, em seguida, entre set 2 e 3) tudo estará bem. Pode até ajudar a revelar-se mais rapidamente um relacionamento desde que você não precisa recurse tantas vezes. Mas mais complexas relações entre conjuntos podem forçá-lo em um problema muito mais complexo de manusear. Tente mantê-lo simples.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top