正交向量

时间:2010-09-24 17:15:42

标签: math

给定大小为N的向量V,查找是否存在另一个向量A(大小为N),使得A.V = 0其中。表示点积或内积,即a1 * v1 + a2 * v2 + a3 * v3 + ... a * vn = 0,且A> 0,即所有ai都是非负整数,并且所有ais都不能为0同时(琐碎的案例)。 建议一个算法来生成NO的NO。

2 个答案:

答案 0 :(得分:0)

我会根据一些直觉在这里跳出来。尝试一组矢量A,其中a1..an是0或1.因此对于大小N,你将在这个集合中有2 ** N个向量。对每个产品采用点积V.A.如果至少有一个正数和至少一个负点积,那么在该象限/八分区/ X-ant中存在一个向量,其中点积为零,否则不存在。

当您在向量之间进行插值时,点积将进行插值,因此如果存在正数和负数,则这些的线性组合将具有零点的乘积。

直觉部分是这个测试是足够的 - 即“否则不是”部分。

编辑:这最终等同于“如果V和一个负面组件中至少有一个正面组件,那么是。否则没有。”

答案 1 :(得分:0)

首先考虑v i = 0中的至少一个时的情况。然后,您可以很容易地显示答案为YES。现在继续讨论所有v i ≠0的情况。现在将其分解为两个子类。

  1. 所有v i 都有相同的符号。
  2. 至少有一对,比如说v i 和v j ,i≠j,有不同的符号。
  3. 您应该可以从此细分中完成作业。