0

我想要一个程序来做我在标题中所说的。

我意识到这是一个非常模糊的问题。我也意识到弄清楚如何将任何输入转换为任何输出几乎是不可能的,但似乎处理一些简单的情况应该是可行的。

提供一个具体的例子(在 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"

我怀疑这种事情有官方说法,但我不知道它是什么。

4

1 回答 1

1

好吧,这个术语叫做数据映射。这是一个广阔的领域,可以服务于几个目的,包括你的。

这种任务的工具很难掌握,所以不要指望这很容易。对于这种特定情况,您将寻找数据驱动的映射方法。这些涉及启发式统计的组合,以找到相关的关系。

值得庆幸的是,您的示例在数学上得到了很好的表达,并且对于数据集的每个元素都将保持正确。因此,您可以通过尝试分析配对元素之间的数学关系并尝试验证在剩余配对上找到的任何关系来开始解决这个问题。

编辑:最后一个示例添加了一个新维度。所以这也必须是可观察的。如果你坚持集合之间的渐进关系,就像那里的情况一样(首先在集合 1 和 2 之间建立关系,然后在集合 2 和 3 之间建立关系),一切都会好起来的。它甚至可能有助于更快地证明一段关系,因为您不需要如此频繁地递归。但是更复杂的集合之间的关系可能会迫使你处理一个更复杂的问题。尽量保持简单。

于 2009-09-12T02:49:03.160 回答