কম্পিউটার টিউটোরিয়াল

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

মান লজিয়ে, আমাদের দুটি স্পার্স ভেক্টর দুইটি লিস্টে রিপ্রেজেন্ট করা আছে। আমাদের দুটি স্পার্স ভেক্টরের ডট প্রোডাক্ট রিটার্ন করতে হবে। ভেক্টরগুলো অবজেক্ট হিসেবে রিপ্রেজেন্ট করা আছে, এবং লিস্টগুলো অবজেক্টের '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

  • vector2-এর nums-এর প্রতিটি ইনডেক্স i এবং মান v-এর জন্য:

    • যদি v == 0, তবে continue
    • অন্যথায় যদি vector1-এর nums[i] == 0, তবে continue
    • অন্যথায়: res := res + v * vector1.nums[i]
  • 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
  1. পাইথনে গ্রাফ সবাই দ্বারা ট্রাভার্সেবল কিনা চেক করার প্রোগ্রাম

  2. পাইথনে কার্যকর অধ্যয়ন পদ্ধতি নির্ণয়

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

  4. পাইথনে কোনো সংখ্যা ২-এর ঘাত কিনা চেক করা