デカルト図のポイント座標を表す数値のリストが 2 つあります。
私の目標は、10 の範囲内の多くのポイントを 1 ポイントと見なすことです。
最初の例:
- 最初の点 (1,2)
- 2 点目 (2,3)
- 3 番目の点 (3,4)
- 4点目 (80,90)
座標リスト:
#(1)
x = [1,2,3, 80]
Y = [2,3,4, 90 ]
10 の範囲 (x と y の両方) で最も近い点を削除したいと思います。最初の 3 つの数値を 1 つの数値と見なすことができます。
結果は次のとおりです。
x = [1, 80] and y = [2, 90] or
x = [2,80] and y = [3, 90] or
x = [3,80] and y = [4, 90]
座標リストが次の場合:
#(2)
x = [1,2,3, 80]
Y = [2,3,70, 90 ]
最初の 2 つの数字を 1 つと見なすことができます
結果は次のとおりです。
x = [1, 80] and y = [2, 90] or
x = [2,80] and y = [3, 90] or
それらが次の場合:
#(3)
x = [1,2, 75, 78 , 80, 101]
Y = [2,3, 81, 86, 90 , 91]
結果:
x = [1,75, 101] and y = [2,81, 91] or
x = [1,78, 101] and y = [2,86, 91] or
x = [1,80, 101] and y = [2,90, 91] or
x = [2,75, 101] and y = [3,81, 91] or
x = [2,78, 101] and y = [3,86, 91] or
x = [2,80, 101] and y = [3,90, 91] or
この6つのソリューションのうち1つだけが必要です。x = [1,75]
またはを持っているかどうかは重要ではありませんx = [1,78]
。重要なことは、オンリーワンとして近い数を持つことです。
最後の例:
x = [ 95, 154, 161, 135, 138, 116]
y = [158, 166, 168, 170, 170, 171]
この場合、残るポイントは 3 つだけです。
171 - 170 = 1 => 138 - 116 = 22 both results are in the range of 25 i choose to delete 116 and 171
170 - 170 = 0 => 138 - 135 = 3 both result are in the range of 25 i delete 170 and 138
170 - 168 = 2 => 135 - 161 = 26 i cannot delete
168 - 166 = 2 => 161 - 154 = 7 i delete 168 and 161
166 - 158 = 8 => 154 - 95 = 59 i cannot delete
x = [95, 154, 161, 135]
Y = [158, 166, 168, 170]
操作を繰り返し、x の 161 と y の 168 を削除します。理由: 168 - 166 = 2 => 161 - 154 = 7
x = [95, 154, 135]
Y = [158, 166, 170]
y
リストは昇順です。
それらを比較する最も速い方法は何ですか?