কম্পিউটার

পাইথনে প্রদত্ত আকার, যোগফল এবং উপাদানের উপরের সীমা সহ একটি স্বতন্ত্র উপাদান অ্যারে তৈরি করুন


ধরুন আমাদের একটি সাইজ ভেরিয়েবল N আছে, আমাদের কাছে একটি ভ্যারিয়েবল SUM আছে এটি অ্যারেতে উপলব্ধ সমস্ত উপাদানের মোট যোগফল এবং আরেকটি ভেরিয়েবল K যেমন অ্যারেতে কোনো উপাদান নেই। K-এর থেকে বড়, আমাদের একটি অর্থোগোনাল অ্যারে খুঁজে বের করতে হবে যেখানে অ্যারের সমস্ত উপাদান আলাদা। যদি কোন সমাধান না হয় -1 রিটার্ন।

সুতরাং, যদি ইনপুট হয় N =4, SUM =16 K =9, তাহলে আউটপুট হবে [1,2,4,9]

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

  • minimum_sum :=(N *(N + 1)) / 2

  • সর্বাধিক_সমষ্টি :=(N * K) -(N *(N - 1)) / 2

  • যদি সর্বনিম্ন_সম> SUM বা সর্বোচ্চ_সমষ্টি

    • রিটার্ন -1

  • res :=N + 1 আকারের একটি অ্যারে এবং 0 থেকে N

    দিয়ে পূরণ করুন
  • যোগফল :=সর্বনিম্ন_সমষ্টি

  • i :=N

  • যখন আমি>=1, কর

    • x :=যোগফল + (K - i)

    • যদি x

      • যোগফল :=যোগফল +(K - i)

      • res[i] :=K

      • কে :=কে - 1

    • অন্যথায়,

      • res[i] :=res[i] +(SUM - যোগফল)

      • যোগফল :=যোগফল

      • লুপ থেকে বেরিয়ে আসুন

    • i :=i - 1

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

উদাহরণ

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

def get_arr(N, SUM, K):
   minimum_sum = (N * (N + 1)) / 2
   maximum_sum = (N * K) - (N * (N - 1)) / 2
   if (minimum_sum > SUM or maximum_sum < SUM):
      return -1
   res = [i for i in range(N + 1)]
   sum = minimum_sum
   i = N
   while(i >= 1):
      x = sum + (K - i)
      if (x < SUM):
         sum = sum + (K - i)
         res[i] = K
         K -= 1
      else:
         res[i] += (SUM - sum)
         sum = SUM
         break
         i -= 1
   return res
N = 4
SUM = 16
K = 9
print(get_arr(N, SUM, K))

ইনপুট

4, 16, 9

আউটপুট

[0, 1, 2, 4.0, 9]

  1. প্রদত্ত যোগফলের সাথে জোড়া খুঁজুন যাতে পাইথনের বিভিন্ন BST-এ জোড়া উপাদান থাকে

  2. পাইথনে একটি অ্যারেতে স্বতন্ত্র উপাদান গণনা করুন

  3. একটি প্রদত্ত পূর্ণসংখ্যা অ্যারের সমস্ত স্বতন্ত্র উপাদান প্রিন্ট করার জন্য পাইথন প্রোগ্রাম।

  4. পাইথন প্রোগ্রাম প্রদত্ত আকারের গ্রুপে একটি অ্যারে বিপরীত করতে?