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

Python में स्केल और वज़न का उपयोग करके आइटम के मापने योग्य होने की जांच कैसे करें?

मान लीजिए हमारे पास a^0, a^1, a^2, ..., a^100 जैसे कुछ वज़न हैं, यहां 'a' एक पूर्णांक है, और हमारे पास एक वेइंग स्केल भी है जहां वज़न को स्केल के दोनों तरफ रखा जा सकता है। हमें यह जांचना है कि वजन W का एक विशेष आइटम इन वज़न का उपयोग करके मापा जा सकता है या नहीं।

तो, यदि इनपुट a = 4, W = 17 है, तो आउटपुट True होगा क्योंकि वज़न a^0 = 1, a^1 = 4, a^2 = 16 हैं, हम 16 + 1 = 17 प्राप्त कर सकते हैं।

हल करने के चरण

  • found := False
  • util() फ़ंक्शन परिभाषित करें। यह idx, itemWt, weights, N लेगा
  • यदि found true है, तो:
    • वापस लौटें
  • यदि itemWt 0 के समान है, तो:
    • found := True
    • वापस लौटें
  • यदि idx > N, तो:
    • वापस लौटें
  • util(idx + 1, itemWt, weights, N)
  • util(idx + 1, itemWt + weights[idx], weights, N)
  • util(idx + 1, itemWt - weights[idx], weights, N)
  • मुख्य विधि से निम्नलिखित करें:
    • यदि a या तो 2 या 3 है, तो:
      • True लौटाएं
    • weights := आकार 100 की सूची और 0 से भरें
    • total_weights := 0
    • weights[0] := 1, i := 1
    • अनंत बार निम्नलिखित करें:
      • weights[i] := weights[i - 1] * a
      • total_weights := total_weights + 1
      • यदि weights[i] > 10^7:
        • लूप से बाहर आएं
      • i := i + 1
    • util(0, W, weights, total_weights)
    • यदि found true है, तो:
      • True लौटाएं
    • False लौटाएं

    उदाहरण

    found = False
    def util(idx, itemWt, weights, N):
        global found
        if found:
            return
        if itemWt == 0:
            found = True
            return
        if idx > N:
            return
        util(idx + 1, itemWt, weights, N)
        util(idx + 1, itemWt + weights[idx], weights, N)
        util(idx + 1, itemWt - weights[idx], weights, N)
    
    def solve(a, W):
        global found
        if a == 2 or a == 3:
            return True
        weights = [0] * 100
        total_weights = 0
        weights[0] = 1
        i = 1
        while True:
            weights[i] = weights[i - 1] * a
            total_weights += 1
            if weights[i] > 10**7:
                break
            i += 1
        util(0, W, weights, total_weights)
        if found:
            return True
        return False
    
    a = 4
    W = 17
    print(solve(a, W))

    इनपुट

    4, 17

    आउटपुट

    True
  1. Python और Bokeh का उपयोग करके एक्सिस-अलाइन्ड आयतों को कैसे विज़ुअलाइज़ करें? Python और Bokeh का उपयोग करके एक्सिस-अलाइन्ड आयतों को कैसे विज़ुअलाइज़ करें?

    Bokeh एक Python पैकेज है जो डेटा विज़ुअलाइज़ेशन में मदद करता है। यह एक ओपन-सोर्स प्रोजेक्ट है। Bokeh अपने प्लॉट को HTML और JavaScript का उपयोग करके रेंडर करता है। यह इंगित करता है कि यह वेब-आधारित डैशबोर्ड के साथ काम करते समय उपयोगी है। Bokeh डेटा स्रोत को JSON फ़ाइल में परिवर्तित करता है। इस फ़ाइल

  1. पायथन में Bokeh का उपयोग करके वर्टिकल बार ग्राफ़ कैसे विज़ुअलाइज़ करें? पायथन में Bokeh का उपयोग करके वर्टिकल बार ग्राफ़ कैसे विज़ुअलाइज़ करें?

    Bokeh एक पायथन पैकेज है जो डेटा विज़ुअलाइज़ेशन में मदद करता है। यह एक ओपन सोर्स प्रोजेक्ट है। Bokeh अपने प्लॉट को HTML और JavaScript का उपयोग करके रेंडर करता है। यह इंगित करता है कि यह वेब-आधारित डैशबोर्ड के साथ काम करते समय उपयोगी है। Bokeh को NumPy, Pandas, और अन्य पायथन पैकेज के साथ आसानी से उपय

  1. पायथन और Scrapy का उपयोग करके वेब स्क्रैपिंग पायथन और Scrapy का उपयोग करके वेब स्क्रैपिंग

    क्रॉलर विकसित करने के लिए सबसे अच्छे फ्रेमवर्क में से एक scrapy है। Scrapy एक लोकप्रिय वेब स्क्रैपिंग और क्रॉलिंग फ्रेमवर्क है जो वेबसाइटों को स्क्रैप करना आसान बनाने के लिए हाई-लेवल फंक्शनलिटी का उपयोग करता है। इंस्टॉलेशन विंडोज में scrapy इंस्टॉल करना आसान है: हम या तो pip या conda (यदि आपके पास