座標のリストを考えて、他の2つのポイントの真ん中にあるポイントの数を知る方法を知りたいです。
A(1 ; 3)
B(2 ; 2)
C(3 ; 1)
D(3 ; 2)
E(3 ; 3)
表現は次のとおりです。
_______
|A| |E|
_______
| |B|D|
_______
| | |C|
_______
ここでBとDは中点なので、答えは「2」です。
O(n³)
非常に非効率的なアルゴリズムを見つけました。
count := 0
For each point x1
For each point x2
For each point x3
If x3 is the midpoint of [x1;x2]
count := count + 1
Print count
より効率的なアルゴリズムについて何か考えがありますか?