用Python找出两个稀疏向量的点积的程序

假设,我们有两个稀疏向量表示在两个列表中。我们必须返回两个稀疏向量的点积。向量表示为对象,列表存储在对象中的成员变量“nums”中。

所以,如果输入像 vector1 = [1, 0, 0, 0, 1], vector2 = [0, 0, 0, 1, 1],那么输出就会是 1 点积是 1 * 0 + 0 * 0 + 0 * 0 + 0 * 1 + 1 * 1 = 1。

示例(Python)

让我们看看以下实现以获得更好的理解 -

class Solution:

   def __init__(self, nums):

     self.nums= nums

   def solve(self, vec):

      res = 0

   for i, v in enumerate(vec.nums):

      if v == 0:

         continue

      elif self.nums[i] == 0:

         continue

      else:

         res += v * self.nums[i]

   return res

ob1, ob2 = Solution([1, 0, 0, 0, 1]), Solution([0, 0, 0, 1, 1])

print(ob1.solve(ob2))

输入

[1, 0, 0, 0, 1], [0, 0, 0, 1, 1]
输出结果
1

以上是 用Python找出两个稀疏向量的点积的程序 的全部内容, 来源链接: utcz.com/z/335530.html

回到顶部