一、题目
假设集合A有m个向量,集合B有n个向量。所有向量的维度都是d维。
如何求这m个向量与这n个向量的距离(共m*n个距离)?
二、分析
一般,我们会想到使用两重循环的方式来求。
for i in range(m):
for j in range(n):
dist[i][j] = ...
但是比较耗时。
三、方法
我们可以使用矩阵运算来解决。
表示成矩阵形式为:P(m*d矩阵)、C(n*d矩阵)。 结果dist应该是m*n的矩阵。
首先,看一下dist(i,j)的结果。
dist(i,j)应该为P的第i行与C的第j行的距离。
因此,总的dist^2为: