Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> 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

  • สำหรับแต่ละดัชนี i ค่า v ใน nums ของ vector2 ทำ

    • ถ้า v เท่ากับ 0 แล้ว

      • ต่อ

    • มิฉะนั้น เมื่อ nums[i] ของ vector1 เท่ากับ 0 แล้ว

      • ไปทำซ้ำต่อไป

    • มิฉะนั้น

      • res :=res + v * nums[i] ของ vector1

  • ผลตอบแทน

ตัวอย่าง (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