Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में अधिकतम nCr मान के साथ दिए गए सरणी से एक जोड़ी खोजें

मान लीजिए कि हमारे पास एन पूर्णांक के साथ एक सरणी गिरफ्तार है, हमें सरणी से एआर [i] और एआर [जे] ढूंढना होगा जैसे कि एआर [i] कैर [जे] जितना संभव हो सके। यदि एक से अधिक जोड़े हैं, तो उनमें से किसी एक को लौटा दें।

इसलिए, यदि इनपुट [4, 1, 2] जैसा है, तो आउटपुट 4 2 होगा जैसे 4सी1 =4, 4सी2 =6 और 2सी1 =2, इसलिए (4,2) केवल जोड़ी है जैसा हम चाहते हैं।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • सूची को क्रमबद्ध करें v
  • N :=v[n - 1]
  • यदि N mod 2 1 के समान है, तो
    • पहला :=N/2 (पूर्णांक विभाजन)
    • दूसरा:=पहला + 1
    • बाएं:=-1, दाएं:=-1
    • अस्थायी:=-1
    • मैं के लिए 0 से n की सीमा में, करते हैं
      • अगर v[i]> पहले, फिर
        • अस्थायी:=मैं
        • ब्रेक
      • अन्यथा,
        • अंतर:=पहला - v[i]
        • यदि अंतर
        • res1 :=अंतर
        • बाएं:=v[i]
  • दाएं:=वी[अस्थायी]
  • difference1 :=पहले - बाएं
  • difference2 :=दाएँ - सेकंड
  • यदि अंतर1 <अंतर2, तो
    • प्रिंट (एन, लेफ्ट)
  • अन्यथा,
    • प्रिंट (एन, दाएं)
  • अन्यथा,
    • अधिकतम:=N/2 (पूर्णांक विभाजन)
    • res :=3*(10^18)
    • आर:=-1
    • मैं के लिए 0 से n -1 की सीमा में, करो
      • अंतर:=|v[i] - अधिकतम|
      • यदि अंतर
      • res :=अंतर
      • R :=v[i]
  • प्रिंट (एन, आर)
  • उदाहरण

    आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

    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. C++ में अधिकतम nCr मान के साथ दिए गए सरणी से एक जोड़ी खोजें

      अवधारणा एन सकारात्मक पूर्णांक के एक सरणी गिरफ्तारी [] दिए जाने के संबंध में, कार्य सरणी से गिरफ्तार [i] और गिरफ्तारी [जे] तत्वों को निर्धारित करना है जैसे कि गिरफ्तारी [i] कैर [जे] सबसे अधिक संभव है। 1 से अधिक मान्य जोड़े के संबंध में, उनमें से किसी एक को प्रिंट करें। इनपुट arr[] = {4, 1, 2} आउट

    1. C++ में दिए गए ऑब्जेक्ट्स की सरणी से अधिकतम ऊंचाई पिरामिड खोजें

      मान लीजिए कि हमारे पास n वस्तुओं की एक सरणी है। प्रत्येक वस्तु की चौड़ाई W [i] होती है। हमें उन्हें पिरामिड के रूप में व्यवस्थित करना होगा जैसे - ith की कुल चौड़ाई (i + 1)वें से कम है ith में वस्तुओं की कुल संख्या (i + 1)वें से कम है उदाहरण के लिए, यदि वज़न [40, 100, 20, 30] जैसा है, तो आउट

    1. दिए गए सरणी के किसी भी अनुक्रम का अधिकतम आकार खोजने का कार्यक्रम जहां प्रत्येक जोड़ी पायथन में अच्छी है

      मान लीजिए कि हमारे पास आकार n का अनुक्रम संख्या है। हमें अंकों के बाद के अधिकतम आकार का पता लगाना है जिसमें प्रत्येक जोड़ी (p, q) एक अच्छी जोड़ी है? एक पैट को अच्छा जोड़ा कहा जाता है यदि और केवल यदि वह इनमें से कम से कम एक शर्त रखता है:1. पी के विशिष्ट अभाज्य भाजक की संख्या की समता बी के बराबर है। उ