稀疏向量
来源:CCF
标签:
参考资料:
相似题目:
题目
对于一个 n 维整数向量 v ∈ Zn,其在第 index 个维度上的取值记作 vindex。这里我们约定 index 的取值从 1 开始,即 v = (v1, v2, · · · , vn)。下面介绍一种向量的稀疏表示方法。
如果 v 仅在少量维度上的取值不为 0,则称其为稀疏向量。
例如当 n = 10 时,v = (0, 0, 0, 5, 0, 0,; 3, 0, 0, 1) 就是一个稀疏向量。
由于稀疏向量的非零值较少,我们可以通过仅存储非零值的方式来节省空间。具体来说,每个非零值都可以用一个 (index, value) 对来表示,即该向量在第 index 个维度上的取值 vindex = value ≠ 0。在上面的例子中,v 就可以表示为 [(4, 5), (7, 3), (10, 1)]。
接下来给出这种稀疏表示一般化的定义。
• 对于任意一个 n 维整数向量 v ∈ Zn,如果其在且仅在 a 个维度上取值不为 0,则可以唯一表示为:
[(index1, value1), (index2, value2), · · · , (indexa, valuea)] • 其中所有的 index 均为整数且满足:
1 ≤ index1 < index2 < · · · < indexa ≤ n
• valuei 表示向量 v 在对应维度 indexi 上的非零值。