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

रेखीय समीकरणों के गुणांकों को खोजने का कार्यक्रम जिसका पायथन में केवल एक ही हल है

मान लीजिए कि हमारे पास एक मान n है, हमें जोड़े (a, b) [a

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

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

  • एक फ़ंक्शन divisors_gen() परिभाषित करें। इसमें n
  • . लगेगा
  • divs :=आकार n+1 की सूचियों की एक सूची। और प्रत्येक आंतरिक सूची में 1 है
  • divs[0] :=केवल एक तत्व 0 के साथ एक सूची
  • 2 से n की श्रेणी में i के लिए, करें
    • जे के लिए श्रेणी 1 से (n / i) + 1 के तल तक, do
      • सूचकांक [i * j] पर सूची के अंत में i डालें
  • डिव लौटाएं लेकिन सभी आंतरिक सूचियों को उलट दें
  • मुख्य विधि से, निम्न कार्य करें -
  • परिणाम:=0
  • d_cache :=divisors_gen(n+1)
  • एक श्रेणी 1 से n-1 के लिए, करो
    • मैं :=1
    • s :=एक नया सेट
    • जबकि a*i
    • b :=n - a*i
    • d_cache में प्रत्येक d के लिए[b], करें
      • यदि d> a, तो
        • यदि d s में नहीं है, तो
          • परिणाम:=परिणाम + 1
      • अन्यथा,
        • लूप से बाहर आएं
      • सेट में d डालें
    • i :=i + 1
  • वापसी का परिणाम
  • उदाहरण

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

    def divisors_gen(n):
       divs = [[1] for x in range(0, n + 1)]
       divs[0] = [0]
       for i in range(2, n + 1):
          for j in range(1, n // i + 1):
             divs[i * j].append(i)
       return [i[::-1] for i in divs]
    
    def solve(n):
       result = 0
       d_cache = divisors_gen(n+1)
    
       for a in range(1, n):
          i = 1
          s = set([])
          while a*i < n:
             b = n - a*i
             for d in d_cache[b]:
                if d > a:
                   if d not in s:
                      result += 1
                else:
                   break
                s.add(d)
             i += 1
       return result
    
    n = 4
    print(solve(n))

    इनपुट

    4
    

    आउटपुट

    2

    1. निकटतम बिंदु खोजने के लिए कार्यक्रम जिसमें समान x या y है, पायथन का उपयोग करके समन्वय करता है

      मान लीजिए कि हमारे पास pts नामक सरणी में दिए गए बिंदुओं का एक सेट है। हमारे पास एक और बिंदु (x, y) भी है जो हमारा वर्तमान स्थान है। हम एक मान्य बिंदु को एक ऐसे बिंदु के रूप में परिभाषित कर रहे हैं, जो हमारे वर्तमान बिंदु के समान x-निर्देशांक या समान y-निर्देशांक साझा करता है। हमें अपने वर्तमान स्थान

    1. पायथन में एक अंक की संख्या होने तक अंकों का योग खोजने का कार्यक्रम

      मान लीजिए कि हमारे पास एक सकारात्मक संख्या n है, हम एक नई संख्या प्राप्त करने के लिए इसके सभी अंकों को जोड़ देंगे। अब इस ऑपरेशन को 10 से कम होने तक दोहराएं। तो, अगर इनपुट 9625 की तरह है, तो आउटपुट 4 होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - एक विधि हल परिभाषित करें (), इसमें n लगेगा

    1. पायथन में एक स्वैप के साथ लेक्सिकोग्राफिक रूप से सबसे छोटी स्ट्रिंग खोजने का कार्यक्रम

      मान लीजिए कि हमारे पास एक स्ट्रिंग s है, तो हमें लेक्सिकोग्राफ़िक रूप से सबसे छोटी स्ट्रिंग ढूंढनी होगी जो कि दी जा सकती है यदि हम दिए गए स्ट्रिंग s में दो वर्णों के बीच अधिकतम एक स्वैप कर सकते हैं। इसलिए, यदि इनपुट zyzx जैसा है, तो आउटपुट xyzz होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -