Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 定位与Haskell中其他点接近的点_Algorithm_Haskell_Optimization_Point - Fatal编程技术网

Algorithm 定位与Haskell中其他点接近的点

Algorithm 定位与Haskell中其他点接近的点,algorithm,haskell,optimization,point,Algorithm,Haskell,Optimization,Point,我正在构建一个重力模拟器,我想在Haskell中运行它的后端(处理粒子)。我的点数据如下所示: data Point = Point { key :: Int, x :: Double, y :: Double, r :: Double } deriving (Show, Read, Eq) 其中,键只是某个唯一标识符,x是x位置,y是y位置,r是围绕该点的球体半径 假设我有一个点列表[Point]。我想从这个列表中抓住所有将要触及的要点。这意味着(点1和点2之间的距离)。我建

我正在构建一个重力模拟器,我想在Haskell中运行它的后端(处理粒子)。我的点数据如下所示:

data Point = Point {
  key :: Int,
  x :: Double,
  y :: Double,
  r :: Double
} deriving (Show, Read, Eq)
其中,
只是某个唯一标识符,
x
是x位置,
y
是y位置,
r
是围绕该点的球体半径


假设我有一个点列表
[Point]
。我想从这个列表中抓住所有将要触及的要点。这意味着
(点1和点2之间的距离)。我建议您研究一下三角形不等式。您可能想了解如何处理这个问题。我建议您使用一种或类似的树结构,首先将所有点插入到该结构中,然后根据某种贴近度标准提取它们。通过在每个维度中对所有点进行排序,可以避免将所有点与所有其他点进行比较。(排序步骤可以与在树中插入内容的步骤相同。)嗯,这很有趣。谢谢你的回复。我做了一些关于列表理解的事情,但我知道这不是最快的方法。我一定会研究你的方法,看看是否能把它们应用到我的问题上。。我建议您研究一下三角形不等式。您可能想了解如何处理这个问题。我建议您使用一种或类似的树结构,首先将所有点插入到该结构中,然后根据某种贴近度标准提取它们。通过在每个维度中对所有点进行排序,可以避免将所有点与所有其他点进行比较。(排序步骤可以与在树中插入内容的步骤相同。)嗯,这很有趣。谢谢你的回复。我做了一些关于列表理解的事情,但我知道这不是最快的方法。我一定会研究你的方法,看看我是否能把它们应用到我的问题上。