1

私のコードはもっとうまくできると思います...

私が欲しいもの:

array a = ([1,2,3],[4,5,6],[7,8,9])
array b = ([2,3,4],[2,2,2])

からのユークリッド距離 a[0] to b[0] and b[1]、次にその最小値など、他の値と...

結果はそのようなものでなければなりません

result = ([1,2]) 

私がやった方法は少し複雑だと思います:

result = [0]*len(b)
for i in a:
    c = 0
    minimum = euclid(a[0],b[0])
    place = 0
    for j in b:
        c=c+1
    if (minimum > euclid(i,j)):
          minimum = euclid(i,j)
          place = c 
    result[place-1] = result[place-1]+1

わかりました、私はそれをよりよく説明しようとします。2 つの配列 A と B があります 配列 A には 3 つの値があります (値 <=> [1,2,3]) 今、A のすべての値と B のすべての値のユークリッド距離を計算し、B の頻度を数えたいと思います[0] または B[1] が最小値でした。

だから私はコードマニュアルを開始します:最初に私はb [0]でa [0]を計算し、現時点では最小値がないため、それが最小値であることがわかりました。次に、b[1] で a[0] を計算し、euclidean(a[0],b[1]) < euchlidean(a[0],b[0]) であることがわかったので、次の場所にある配列を設定しますc([0,0]) から c([0,1]) までの瞬間。次に、ユークリッド距離 a[1] から b[0] および b[1] を計算し、b[0] がこの 2 つの値の最小値であることがわかったので、c を c([1,1]) に設定します。 .

4

1 に答える 1