কম্পিউটার

পাইথনে দুটি স্পার্স ভেক্টরের ডট প্রোডাক্ট খুঁজে বের করার প্রোগ্রাম


ধরুন, আমাদের দুটি স্পার্স ভেক্টর আছে দুটি তালিকায়। আমাদের দুটি স্পারস ভেক্টরের ডট গুণফল ফেরত দিতে হবে। ভেক্টরগুলিকে অবজেক্ট হিসাবে উপস্থাপন করা হয়, এবং তালিকাগুলি অবজেক্টের সদস্য ভেরিয়েবল 'সংখ্যা'তে সংরক্ষণ করা হয়।

সুতরাং, যদি ইনপুটটি ভেক্টর 1 =[1, 0, 0, 0, 1], ভেক্টর2 =[0, 0, 0, 1, 1] এর মতো হয়, তাহলে আউটপুট হবে 1 ডট পণ্যটি 1 * 0 + 0 * 0 + 0 * 0 + 0 * 1 + 1 * 1 =1।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • res :=0

  • প্রতিটি সূচক i এর জন্য, ভেক্টর2 এর সংখ্যা v এর মান, করুন

    • যদি v 0 এর মত হয়, তাহলে

      • চালিয়ে যান

    • অন্যথায় যখন ভেক্টর1 এর সংখ্যা[i] 0 এর মত হয়, তখন

      • পরবর্তী পুনরাবৃত্তির জন্য যান

    • অন্যথায়,

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

  • রিটার্ন রিটার্ন

উদাহরণ (পাইথন)

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

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

  1. পাইথনের প্রত্যেকের দ্বারা গ্রাফটি অতিক্রম করা যায় কিনা তা খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে অধ্যয়নের কার্যকর উপায় খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে দুটি স্বতন্ত্র উপাদানের বৃহত্তম পণ্য খুঁজে বের করার প্রোগ্রাম

  4. পাইথন প্রোগ্রাম a no দুইটির শক্তি কিনা তা খুঁজে বের করতে