假設我有N個點由它們的座標(X,Y)定義。我怎麼能找到另一個點X的座標,這個點在這N個點的中間(即X與每個點之間的距離N大致相等)。有沒有什麼算法可以做到這一點?如何在N點中間找到一個點?
-3
A
回答
1
有可能沒有這樣的觀點。你可以對X和Y進行平均,得到一個位於中間的點(又名「質心」)。
1
對於2分這個「中」存在。對於更多我們不能確定。
您可以用點的X和y的平均值計算質心。
if (points.lenght > 0) {
var x_acc = 0;
var y_acc = 0;
for (int i = 0; i < points.length; i++) {
x_acc += points[i].x;
y_acc += points[i].y;
}
var x_centroid = x_acc/points.lenght
var y_centroid = y_acc/points.lenght
}
2
你可能被認爲「在中間」點等距於所有其他錯誤陳述的問題。
如果你無法做到這一點,一個更好的方法是儘量減少中心到N點的總歐幾里得距離。
事實證明,這個問題沒有簡單的解析解,因爲你需要儘量減少
D = Σ √(X - Xc)² + (Y - Yc)²
得出關於XC,你
D'x = Σ (X - Xc)/√(X - Xc)² + (Y - Yc)² = 0
一個複雜的非線性表達。這個問題被稱爲「幾何中位數」,你會發現更多信息here(尤其是Weiszfeld算法)。
在相反,最小化的平方和的距離
D = Σ (X - Xc)² + (Y - Yc)²
是微不足道
D'x = 2 Σ (X - Xc) = 0
其產生質心。
Xc = Σ X/N, Yc = Σ Y/N.
你也可以認爲你的觀點,這是從給定的距離,別人的和最小的點medoid的。需要N(N-1)/2
距離計算才能找到它。
相關問題
- 1. 如何找到當前節點(n)和前一個節點(n-1)的差異
- 2. 在3D空間中給定N個點,如何找到包含這N個點的最小球體?
- 3. 在d維空間中查找一組n個點的直徑
- 4. 如何找到兩點之間的點
- 5. 如何找到一個點是否在一組間隔內?
- 6. 在一個網格(n×n個),如何找到K,K + 1,K + 2點從一個點到另一個點的路徑?
- 7. 從一組n個點中找出m個最遠點
- 8. 如何找到非二叉樹中的第n個節點?
- 9. 如何在WPF中內插N個點
- 10. 如何找到某一點
- 11. 如何在O(n + m)的有向圖中找到母頂點?
- 12. 如何找到兩個其他點之間的地理點
- 13. 如何找到四個頂點之間的Y點? HLSL
- 14. 如何創建一個多邊形時頂點之間添加n個點
- 15. 如何在Matlab中找到兩個網格點之間的所有網格點
- 16. 在sql中找到一個圓點
- 17. Haskell:找到一個浮點的第n個根
- 18. 在圖中,如何找到一組節點的最近節點?
- 19. PostGIS:如何找到給定集的N個最接近點集?
- 20. 查找從A點到B點的路徑(n個循環)
- 21. 如何找到中間點與CV ::點OpenCV2
- 22. 如何找到點之間是否存在這些點
- 23. 找到另一個點的最近點
- 24. 如何在一個n-way樹中找到一個孩子?
- 25. 如何找到一組點中第k個點的最近鄰點
- 26. 找到一個XML節點
- 27. 查找cuda中n個點之間的最小距離
- 28. 如何找到一個點與其他兩點的距離?
- 29. 給定一個URL如何找到錨點HTML錨點標記?
- 30. 找到給出凸polgyon等一批N個點
downvoter能解釋嗎? –
[與你的問題類似嗎?](http://math.stackexchange.com/questions/130534/given-an-arbitrary-number-of-points-how-do-you-find-an-equidistant-center ) – gtgaxiola
這和編程和JavaScript有什麼關係? @YvesDaoust,我懷疑downvoted,因爲「任何算法做」它尖叫「是否有一個圖書館.. [等]」的話題。 –