调整数组元素的位置使得两数组向量积最小
问题描述:
有长度为n的数组a,b,问如何调整数组内元素的位置使得 最小?
解的通俗描述:
对应小的乘大的,大的乘小的,得到的向量积最小。
证明:
- 重定义a的逆序
依据数组b来定义数组a的逆序,假设有a,b对应位置上的两对数和,如果有时,或者时,则称为一对逆序,否则不为逆序。 - 证明单调
假设现在有 ,,,,
则向量积
若现在交换的位置,即数组a增加了一对逆序。
向量积变为
可以证得(这个简单证明放在第3点)
即
所以结论是:保持b不变,a每增加一对逆序,a,b的向量积就一定会变小,两者呈反比。
所以当a是相对于b的全逆序时,a,b的向量积最小。相反的,当a是相对于b的全顺序时,a,b的向量积最大。
- 下面证明:
因为,,所以,
即
对上式展开移项即可得到要证明的结论。
网友评论