2

是否有可能创建一种算法来解决 Vim-golf 问题?对于那些不熟悉那是什么的人,您会得到两个不同的文本块,并且必须使用尽可能少的击键次数将第一个块转换为第二个块(在规范示例中使用 Vim,或者您选择的任何文本编辑程序)利用)。我最初的怀疑是答案是否定的。我们知道所需文本更改数量的上限 - 手动删除差异并输入正确的文本。然而,降到最低数量更复杂 - 文本编辑器可以编写强大的宏来执行任务,并且您可以组合多个宏 - 我猜可能有一些方法可以显示与停止问题的对应关系,但我我不太确定细节。

4

1 回答 1

3

编辑:正如 WuTheFWasThat 所指出的,VIM 宏正在完成,所以问题很可能无法确定,因此您的问题的答案是否定的。我在下面的回答错误的原因是因为它假设我们可以在有限时间内决定 VIM 中给定的击键序列是否终止,但事实并非如此。

旧答案

好吧,这当然不是不可确定的,因为您可以尝试所有可能的击键序列,直到找到答案。长度有一个上限,因为您可以删除一个并插入另一个。即使减少了一些 NP-hard 问题,你也可以很好地近似。如果人类可以做到,那么计算机应该可以做得更好。

那么可行吗?可能,但这似乎是一个棘手的问题。

为什么?因为很多重要的问题,如编辑距离、字符串分解和无数的压缩算法,似乎都归结为 Vim 问题。人类可以为所有这些问题找到解决方案,并将它们创造性地结合起来以得出解决方案。

于 2015-07-14T00:21:53.020 回答