কম্পিউটার

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


ধরুন আমরা একটি ডেটা স্ট্রাকচার তৈরি করতে চাই যা পূর্ণসংখ্যার একটি তালিকা তৈরি করতে পারে, এবং যখনই আমাদের একটি কার্যকর উপায়ে প্রয়োজন হয় তখন সূচক i থেকে সূচক j-1 পর্যন্ত উপাদানগুলির যোগফল খুঁজে বের করার জন্য একটি ফাংশন রয়েছে। দুটি ফাংশন আছে।

  • কনস্ট্রাক্টর যেটি পূর্ণসংখ্যা অ্যারে দিয়ে একটি নতুন উদাহরণ তৈরি করে।
  • get_sum(i, j) সূচী i এবং শেষ সূচক j-1 থেকে অ্যারের উপাদানগুলির পূর্ণসংখ্যার যোগফল প্রদান করে।

সুতরাং, যদি ইনপুটটি অ্যারে =[5,2,3,6,4,7,8,9,3,2] এর মতো হয় তবে একটি অবজেক্ট অবজেক্ট তৈরি করুন এবং obj.get_sum(1,5) এবং obj ফাংশনগুলিকে কল করুন। get_sum(4,8), তাহলে আউটপুট হবে যথাক্রমে 15 এবং 28। যেহেতু প্রথম পরিসরের উপাদানগুলি [2,3,6,4] তাই যোগফল হল 15 এবং দ্বিতীয় পরিসরের উপাদানগুলি হল [4,7,8,9] এখানে যোগফল হল 28৷

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

  • কন্সট্রাক্টর সংজ্ঞায়িত করুন। এটি অ্যারে নিয়ে যাবে
  • সংখ্যা :=এটি একটি তালিকা, প্রাথমিকভাবে 0 ঢোকান
  • অ্যারের প্রতিটি x এর জন্য, করুন
    • যোগের শেষে সন্নিবেশ করুন (x + (অন্তিম যোগফল))
  • একটি ফাংশন সংজ্ঞায়িত করুন get_sum()। এর জন্য i, j
  • লাগবে
  • রিটার্ন যোগফল[j] - যোগফল[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. অ্যারের যোগফল খুঁজে পেতে পাইথন প্রোগ্রাম