কম্পিউটার

পাইথনে সর্বাধিক nCr মান সহ প্রদত্ত অ্যারে থেকে একটি জোড়া খুঁজুন


ধরুন আমাদের n পূর্ণসংখ্যা সহ একটি অ্যারে অ্যারে আছে, আমাদের অ্যারে থেকে arr[i] এবং arr[j] খুঁজে বের করতে হবে যাতে arr[i]Carr[j] যতটা সম্ভব বড় হয়। যদি একাধিক জোড়া থাকে, তাদের যেকোনো একটি ফেরত দিন।

সুতরাং, যদি ইনপুটটি [4, 1, 2] এর মত হয়, তাহলে আউটপুট হবে 4 2 হিসাবে 4C1 =4, 4C2 =6 এবং 2C1 =2, তাই (4,2) শুধুমাত্র আমরা যেভাবে চাই তা জোড়া। পি>

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

  • তালিকা সাজান v
  • N :=v[n - 1]
  • যদি N mod 2 1 এর মত হয়, তাহলে
    • প্রথম :=N / 2 (পূর্ণসংখ্যা বিভাগ)
    • সেকেন্ড :=প্রথম + 1
    • বামে :=-1, ডানে :=-1
    • তাপ :=-1
    • আমি 0 থেকে n রেঞ্জের জন্য, কর
      • যদি v[i]> প্রথমে, তারপর
        • তাপ :=i
        • ব্রেক
      • অন্যথায়,
        • পার্থক্য :=প্রথম - v[i]
        • যদি পার্থক্য
        • res1 :=পার্থক্য
        • বামে :=v[i]
  • ডান :=v[temp]
  • পার্থক্য1 :=প্রথম - বাম
  • পার্থক্য2 :=ডান - সেকেন্ড
  • যদি পার্থক্য1 <পার্থক্য2, তাহলে
    • মুদ্রণ (N, বাম)
  • অন্যথায়,
    • মুদ্রণ (N, ডান)
  • অন্যথায়,
    • সর্বোচ্চ :=N / 2 (পূর্ণসংখ্যা বিভাগ)
    • res :=3*(10^18)
    • R :=-1
    • আমি 0 থেকে n - 1 রেঞ্জের জন্য, কর
      • পার্থক্য :=|v[i] - সর্বোচ্চ|
      • যদি পার্থক্য
      • res :=পার্থক্য
      • R :=v[i]
  • প্রিন্ট (N, R)
  • উদাহরণ

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

    def findMatrixPair(v, n):
       v.sort()
       N = v[n - 1]
       if N % 2 == 1:
          first = N // 2
          second = first + 1
          res1, res2 = 3 * (10 ** 18), 3 * (10 ** 18)
          left, right = -1, -1
          temp = -1
          for i in range(0, n):
             if v[i] > first:
                temp = i
                break
             else:
                difference = first - v[i]
                if difference < res1:
                   res1 = difference
                   left = v[i]
          right = v[temp]
          difference1 = first - left
          difference2 = right - second
          if difference1 < difference2:
             print(N, left)
          else:
             print(N, right)
       else:
          max = N // 2
          res = 3 * (10 ** 18)
          R = -1
          for i in range(0, n - 1):
             difference = abs(v[i] - max)
             if difference < res:
             res = difference
             R = v[i]
          print(N, R)
    v = [4,1,2]
    n = len(v)
    findMatrixPair(v, n)

    ইনপুট

    [4,1,2], 3

    আউটপুট:

    4 2

    1. একটি নির্দিষ্ট মানের সর্বাধিক উপস্থিতি ধারণকারী অ্যারে সহ MongoDB নথি খুঁজুন

    2. C++ এ সর্বাধিক nCr মান সহ প্রদত্ত অ্যারে থেকে একটি জোড়া খুঁজুন

    3. C++ এ বস্তুর প্রদত্ত অ্যারে থেকে সর্বোচ্চ উচ্চতার পিরামিড খুঁজুন

    4. প্রদত্ত অ্যারের যেকোন সিকোয়েন্সের সর্বোচ্চ আকার খুঁজে বের করার প্রোগ্রাম যেখানে পাইথনে প্রতিটি জোড়া চমৎকার