-1

我有一组点,我想从中得到所有可能的平方。我该怎么做才能实现它(哪些方法?)。

我已经按照以下方式进行了连续迭代点数组并且它没有给出所有可能的平方。我创建了一个主循环,其中我有在每次迭代中获得一秒钟的循环给我 3 分

此致

4

1 回答 1

0

也许有更有效的方法,但我的建议是从计算每对点之间的距离开始:

distance[N][N];
distance[i][j] = distance between point i and point j

接下来,您搜索jk给定点具有相同距离的点i。我们还必须检查角度是否为 90°。而你仍然必须找到第四点..

for (int i=0;i<N;i++){
    for (int j=i+1;j<N;j++){
        for (int k=j+1;k<N;k++){
            if (abs(distances[i][j] - distances[i][k]) < eps){
                if (abs(distances[j][k] - sqrt(2)*distances[i][j]) < eps){
                    ... find a point with same distance from k and j....
                }
            }
        }
    }     
}

...好吧,在写作时,我意识到这可能完全是矫枉过正(循环太多..),但这可能是一个起点。}

于 2015-10-30T18:46:18.867 回答