কম্পিউটার

পাইথনে একটি তালিকার বৃহত্তম kth সূচক মান খুঁজে বের করার প্রোগ্রাম


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

সুতরাং, যদি ইনপুটটি n =5 মোট =15 k =3 এর মত হয়, তাহলে আউটপুট হবে 4, কারণ একটি সম্ভাব্য তালিকা হল [3,2,3,4,3], সর্বাধিক উপাদান যা সূচক 3 এ পাওয়া যায়। হল 4.

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

  • x :=0
  • নিম্নলিখিতটি বারবার করুন, করুন
    • a :=k + 1
    • s :=(x + x - a + 1) * ফ্লোর যদি a/2
    • a :=n - k
    • s :=s +(x + x - a + 1) * a/2 এর তল
    • s :=s - x
    • যদি s> মোট হয়, তাহলে
      • লুপ থেকে বেরিয়ে আসুন
    • x :=x + 1
  • ফেরত x - 1

উদাহরণ

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

def solve(n, total, k):
   x = 0
   while 1:
      a = k + 1
      s = (x + x - a + 1) * a // 2
      a = n - k
      s += (x + x - a + 1) * a // 2
      s -= x
      if s > total:
         break
      x += 1
   return x - 1

n = 5
total = 15
k = 3
print(solve(n, total, k))

ইনপুট

5, 15, 3

আউটপুট

4

  1. পাইথনে নির্দেশিত গ্রাফে সবচেয়ে বড় রঙের মান খুঁজে বের করার প্রোগ্রাম

  2. পাইথন প্রোগ্রাম একটি তালিকার ক্রমবর্ধমান যোগফল খুঁজে বের করতে

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

  4. পাইথন প্রোগ্রাম একটি তালিকায় বৃহত্তম, ক্ষুদ্রতম, দ্বিতীয় বৃহত্তম এবং দ্বিতীয় ক্ষুদ্রতম খুঁজে পেতে?