Domanda

Voglio un programma che faccia quello che ho detto nel titolo.

Mi rendo conto che questo è un problema piuttosto vago. Mi rendo anche conto che capire come trasformare qualsiasi in qualsiasi è quasi impossibile, ma sembra che la gestione di alcuni casi semplici dovrebbe essere fattibile.

Per fornire un esempio concreto (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"

Sospetto che esista una parola ufficiale per questo genere di cose, ma non so cosa sia.

È stato utile?

Soluzione

Bene, il termine si chiama Mappatura dei dati . È un vasto campo che può servire ad alcuni scopi, incluso il tuo.

Gli strumenti per tale compito sono difficili da padroneggiare, quindi non aspettarti che sia facile. Per questo caso specifico, cercherai le metodologie Mappatura basata sui dati . Queste implicano una combinazione di euristica e statistiche per trovare le relazioni pertinenti.

Per fortuna i tuoi esempi sono ben espressi matematicamente e rimarranno veri per ogni elemento dei set di dati. Quindi puoi iniziare ad affrontare questo problema provando ad analizzare le relazioni matematiche tra elementi accoppiati e cercando di convalidare qualsiasi relazione trovata sulle coppie rimanenti.

EDIT: l'ultimo esempio aggiunge una nuova dimensione. Quindi anche questo deve essere osservabile. Se ti attieni a una relazione progressiva tra set come nel caso (prima stabilisci una relazione tra set 1 e 2, quindi tra set 2 e 3) tutto andrà bene. Può anche aiutare a dimostrare più rapidamente una relazione poiché non è necessario ricorrere così spesso. Ma relazioni più complesse tra insiemi possono costringerti a un problema molto più complesso da gestire. Prova a mantenerlo semplice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top