将2个矩阵相乘,结果是最低的



我有矩阵A:

[x1, x2, x3, x4]

矩阵B:

[y1,
y2,
y3,
y4]

是否可以对A中的元素和B中的元素进行排序,使A*B=[z],其中z总是尽可能小的数字,而不使用暴力?元素可以是负数。是否存在这样的算法?矩阵可以很大。

如果所有数字都是正数,那么您只需按升序对一个因子进行排序,按降序对另一个因子排序,即可获得尽可能小的结果。

如果你正在寻找最低的结果,而不是最接近零的结果,那么即使有些数字是负数,这也是有效的。

考虑在每个单元格中添加一个大的正常数:

(x1+a,x2+a,x3+a,x4+a(•(y1+a,y2+a,y3+a,y4+a(

=(x1,x2,x3,x4(•(y1,y2,y3,y4(+a(x1+x2+x3+x4+y1+y2+y3+y4(+4a2

不同顺序的结果之间的差异是不变的,就像数字之间的差异一样。由于排序会在向每个单元格添加足够大的a后找到尽可能低的结果,因此它也会在不添加任何内容的情况下找到尽可能最低的结果。

相关内容

最新更新