在Python中寻找两个稀疏向量的点积的程序

在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。

为了解决此问题,我们将遵循以下步骤 -

  • res:= 0

  • 对于向量2的nums中的每个索引i,值v,我们进行以下操作

    • 如果v和0相同,则
      • continue
    • 否则当vector1的nums [i]与0相同时,则继续进行下一次迭代
      • 继续
    • 否则
      • res:= res + v * vector1的nums [i]
  • return res

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教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程