n次元ベクトルのユークリッド距離を求めるコードを二重ループを使って書いて間違った数値が返ってきました。これはどうしてでしょうか。
python3 x = [-2, 1, 6] y = [3, -1, -2] def ex4_4(x, y): d = 0 t = 0 for i in range(0, len(x)): for j in range(0, len(y)): t = t + (x[i] - y[j]) ** 2 d = t ** (1/2) return d
この関数を実行すると12.84....という間違った数値が返ってきます。
次に正しい関数のコードを教えていただいたものを挙げます。
python3
1コード 2x = [-2, 1, 6] 3y = [3, -1, -2] 4 5def ex4_4(x, y): 6 t = 0 7 for i in range(0, len(x)): 8 t = t + (x[i] - y[i]) ** 2 9 return t ** (0.5) 10 11print(ex4_4(x,y))
前者の書き方だとプログラムはどのように動いているのでしょうか。またその結果どうして間違った数値になるのでしょうか。ちなみにjupyter notebookを使用しています。また、エラーメッセージは出ていません。
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。