Учитывая вход и желаемый результат, выясните необходимое преобразование

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

  •  06-07-2019
  •  | 
  •  

Вопрос

Я хочу программу, которая делает то, что я сказал в заголовке.

Я понимаю, что это довольно расплывчатая проблема. Я также понимаю, что выяснить, как преобразовать любой вход в любой вывод, практически невозможно, но кажется, что обработка некоторых простых случаев должна быть осуществимой.

Чтобы предоставить конкретный пример (на 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"

Я подозреваю, что есть официальное слово для такого рода вещей, но я не знаю, что это такое.

Это было полезно?

Решение

Ну, этот термин называется Отображение данных . Это обширная область, которая может служить нескольким целям, включая вашу.

Инструменты для такой задачи трудно освоить, поэтому не ждите, что это будет легко. Для этого конкретного случая вам понадобятся методологии Картографирования на основе данных . Они включают комбинацию эвристики и статистики , чтобы найти соответствующие отношения.

К счастью, ваши примеры хорошо выражены математически и останутся верными для каждого элемента наборов данных. Таким образом, вы можете начать решать эту проблему, пытаясь проанализировать математические отношения между парными элементами и попытаться проверить любые найденные отношения на оставшихся парах.

РЕДАКТИРОВАТЬ: последний пример добавляет новое измерение. Так что это тоже должно быть заметно. Если вы придерживаетесь прогрессивных отношений между наборами, как это имеет место (сначала установите отношения между наборами 1 и 2, затем между наборами 2 и 3), все будет хорошо. Это может даже помочь быстрее доказать отношения, так как вам не нужно часто повторяться. Но более сложные отношения между наборами могут привести к решению гораздо более сложной проблемы. Постарайтесь сделать это простым.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top