Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm ra tích số chấm của hai vectơ thưa thớt trong Python

Giả sử, chúng ta có hai vectơ thưa thớt được biểu diễn trong hai danh sách. Chúng ta phải trả về tích dấu chấm của hai vectơ thưa thớt. Các vectơ được biểu diễn dưới dạng các đối tượng và danh sách được lưu trữ trong một biến thành viên 'nums' trong các đối tượng.

Vì vậy, nếu đầu vào giống như vector1 =[1, 0, 0, 0, 1], vector2 =[0, 0, 0, 1, 1], thì đầu ra sẽ là 1 Tích số chấm là 1 * 0 + 0 * 0 + 0 * 0 + 0 * 1 + 1 * 1 =1.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • res:=0

  • đối với mỗi chỉ số i, giá trị v tính bằng số của vectơ 2, thực hiện

    • nếu v giống 0 thì

      • tiếp tục

    • ngược lại khi nums [i] của vector1 giống 0 thì

      • chuyển sang lần lặp tiếp theo

    • nếu không,

      • res:=res + v * nums [i] of vector1

  • trả lại res

Ví dụ (Python)

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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))

Đầu vào

[1, 0, 0, 0, 1], [0, 0, 0, 1, 1]

Đầu ra

1