【发布时间】:2015-02-13 15:05:50
【问题描述】:
我有一组从同一点开始但朝不同方向移动的路径。我有另一条称为原始路径的路径,它也从同一点开始。所有这些路径都是二维的,即我有 (x,y) 值。我需要找出最接近原始路径的路径(在一组路径中)。我该怎么做?
【问题讨论】:
我有一组从同一点开始但朝不同方向移动的路径。我有另一条称为原始路径的路径,它也从同一点开始。所有这些路径都是二维的,即我有 (x,y) 值。我需要找出最接近原始路径的路径(在一组路径中)。我该怎么做?
【问题讨论】:
如果您知道路径的长度,则可以使用 A* 算法。您没有提及任何编程语言,也没有显示一些相关代码。这样我可以给你一个更详细的答案。
编辑:
我认为解决方案是像这样简化问题:
如果你有一个 Square 类,它的方法在一个点在这个正方形内时返回 true(这很容易编程并且应该高效工作)。您在原始路径上放置了 3 个相当大的正方形。 然后你遍历可选路径的所有点并检查是否所有方块都被这条路径击中。如果他们是您将它们添加到另一个列表以进行下一次递归。如果遍历所有路径,请检查是否只有 1 条路径击中所有方块(是解决方案),您返回它。如果超过 1 条路径击中所有方格,则输入下一个递归,其中 2ce 方格和一半边长。如果没有路径命中所有正方形,则将下一次递归的边长增加 25%,然后将此递归的所有路径放入下一次。由于需要检查的路径越来越少,这应该具有相当不错的性能。
【讨论】: