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

Мне нужна программа, которая делает то, что я сказал в заголовке.

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

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

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


person Jesse Aldridge    schedule 12.09.2009    source источник
comment
Вы действительно просите людей написать код для вас?   -  person Alexandre Bell    schedule 12.09.2009
comment
Я подозреваю, что есть официальное слово для такого рода вещей, но я не знаю, что это такое. Магия :P А если серьезно, для чего ты собираешься это использовать? Какие типы преобразований вам нужно выяснить?   -  person Isaiah    schedule 12.09.2009
comment
@Krugar Нет, я спрашиваю, есть ли область обучения, библиотека или что-то в этом роде. @Pynt Сейчас у меня нет конкретного применения, но я могу представить несколько способов, которыми это может быть полезно.   -  person Jesse Aldridge    schedule 12.09.2009
comment
попался Джесси. Мои извинения за недоразумение.   -  person Alexandre Bell    schedule 12.09.2009
comment
Чтобы преобразовать любой ввод в любой вывод: удалите все элементы ввода, добавьте все элементы вывода. Вот, решил это для тебя :). В истинном характере сущностей, исполняющих желания.   -  person Eugene    schedule 12.09.2009


Ответы (1)


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

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

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

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

person Alexandre Bell    schedule 12.09.2009
comment
Прохладный. Спасибо за руководство. - person Jesse Aldridge; 12.09.2009
comment
интересный маленький большой проект у вас там есть. Веселиться. - person Alexandre Bell; 12.09.2009