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

পাইথনে রেঞ্জ সম যোগ করার ডেটা স্ট্রাকচার ডিফাইন করার প্রোগ্রাম


মান লিজিয়ে আমরা একটি ডেটা স্ট্রাকচার ডেভেলপ করতে চাই যা ইন্টিজার-এর একটি তালিকা দিয়ে বিল্ড আপ হবে এবং একটি ফাংশন থাকবে যা ইন্ডেক্স i থেকে j-1 পর্যন্ত এলিমেন্টগুলোর সম দ্রুত বের করতে পারবে। দুটি ফাংশন থাকবে:

  • কন্সট্রাক্টর যা ইন্টিজার অ্যারে দিয়ে একটি নতুন ইন্সট্যান্স কনস্ট্রাক্ট করবে।
  • get_sum(i, j) অ্যারে এলিমেন্টগুলোর সম রিটার্ন করবে শুরুইন্ডেক্স i থেকে শেষ ইন্ডেক্স j-1 পর্যন্ত।

উদাহরণস্বরূপ, ইনপুট যদি array = [5,2,3,6,4,7,8,9,3,2] হয়, তবে একটি অবজেক্ট obj কন্সট্রাক্ট করুন এবং ফাংশনগুলো কল করুন: obj.get_sum(1,5) এবং obj.get_sum(4,8)। আউটপুট হবে ১৫ এবং ২৮। কারণ প্রথম রেঞ্জের এলিমেন্টগুলো [2,3,6,4] যাদের সম ১৫ এবং দ্বিতীয় রেঞ্জের এলিমেন্টগুলো [4,7,8,9] যাদের সম ২৮।

এটি সমাধান করার জন্য নিচের ধাপগুলো অনুসরণ করব:

  • কন্সট্রাক্টর ডিফাইন করুন। এটি array নিবে।
  • sums := একটি তালিকা, প্রাথমিকভাবে ০ ইনসার্ট করুন।
  • array-র প্রতিটি x এর জন্য:
    • sums-র শেষে (x + sums-র লাস্ট আইটেম) ইনসার্ট করুন।
  • get_sum() ফাংশন ডিফাইন করুন। এটি i, j নিবে।
  • sums[j] - sums[i] রিটার্ন করুন।

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন ভালো বুঝতে:

class RangeSum:
    def __init__(self, array):
        self.sums = [0]
        for x in array:
            self.sums.append(x + self.sums[-1])
    def get_sum(self, i, j):
        return self.sums[j] - self.sums[i]

array = [5,2,3,6,4,7,8,9,3,2]
obj = RangeSum(array)
print(obj.get_sum(1,5))
print(obj.get_sum(4,8))

ইনপুট

[5,2,3,6,4,7,8,9,3,2] obj.get_sum(1,5) obj.get_sum(4,8)

আউটপুট

15 28
  1. পাইথন প্রোগ্রামে অ্যারের যোগফল বের করা

  2. অ্যারে-এ ইনভারশন কাউন্ট করার পাইথন প্রোগ্রাম

  3. অ্যারে রোটেশনের পাইথন প্রোগ্রাম

  4. পাইথনে অ্যারের যোগফল বের করা