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

पायथन में N संतरे खाने के लिए न्यूनतम दिन ज्ञात करने का प्रोग्राम


मान लीजिए हमारे पास एक संख्या n है। तो मान लीजिए रसोई में n संतरे हैं और हम इन नियमों को बनाए रखते हुए हर दिन कुछ संतरे खाते हैं: 1. एक संतरा खाएं। 2. यदि n सम है, तो n/2 संतरे खाएं। 3. यदि n 3 से विभाज्य है तो 2*(n/3) संतरे खाएं। हम प्रत्येक दिन केवल एक विकल्प चुन सकते हैं। हमें n संतरे खाने के लिए न्यूनतम दिनों की संख्या ज्ञात करनी है।

इसलिए, यदि इनपुट है n = 10, तो आउटपुट 4 होगा क्योंकि

  • दिन 1 पर 1 संतरा खाएं, 10 - 1 = 9।

  • दिन 2 पर 6 संतरे खाएं, 9 - 2*(9/3) = 9 - 6 = 3।

  • दिन 3 पर 2 संतरे खाएं, 3 - 2*(3/3) = 3 - 2 = 1।

  • दिन 4 पर अंतिम संतरा खाएं 1 - 1 = 0।

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

  • एक फ़ंक्शन fun() परिभाषित करें। यह n लेगा

  • यदि n memo में है, तो

    • memo[n] वापस करें

  • यदि n <= 2, तो

    • n वापस करें

  • memo[n] := 1 + (n mod 2 + fun(n//2)) और (n mod 3 + fun(n//3)) का न्यूनतम

  • memo[n] वापस करें

  • मुख्य विधि से, निम्न करें

    • memo := एक नया मैप

    • fun(n) वापस करें

उदाहरण

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

def solve(n):
    def fun(n):
        if n in memo:
            return memo[n]
        if n <= 2:
            return n
        memo[n] = 1 + min(n % 2 + fun(n // 2), n % 3 + fun(n // 3))
        return memo[n]
    memo = {}
    return fun(n)

n = 12
print(solve(n))

इनपुट

7, [5,1,4,3]

आउटपुट

4
  1. Python से DAG में सभी नोड्स तक पहुंचने के लिए मिनिमम वर्टेक्स कैसे ढूंढें? Python से DAG में सभी नोड्स तक पहुंचने के लिए मिनिमम वर्टेक्स कैसे ढूंढें?

    डायरेक्टेड एसाइक्लिक ग्राफ (DAG) में जिन वर्टेक्सेज़ का इन-डिग्री 0 है, उनसे सभी नोड्स पहुंचे जा सकते हैं। एल्गोरिदम सभी नोड्स का सेट बनाएं (0 से n-1)। सभी एजेज़ के डेस्टिनेशन नोड्स (v) का सेट बनाएं। सोर्स नोड्स = सभी नोड्स - डेस्टिनेशन नोड्स (यानी इन-डिग्री 0 वाले)। यही मिनिमम वर्टेक्स सेट है। उद

  1. पायथन में मर्जिंग के बाद न्यूनतम रंगों की संख्या खोजने का प्रोग्राम पायथन में मर्जिंग के बाद न्यूनतम रंगों की संख्या खोजने का प्रोग्राम

    मान लीजिए हमारे पास रंगों (R, G, B) की एक लिस्ट है। अब यदि दो अलग-अलग रंग अगल-बगल हैं तो वे तीसरे रंग के एकल रंग आइटम में बदल सकते हैं। हमें किसी भी संभावित परिवर्तन अनुक्रम के बाद शेष सबसे छोटी संख्या ढूंढनी है।उदाहरण के लिए, यदि इनपुट colors = [G, R, G, B, R] है, तो आउटपुट 1 होगा क्योंकि यह नीचे द

  1. पायथन प्रोग्राम: संख्या के फैक्टर्स का न्यूनतम योग ढूंढें पायथन प्रोग्राम: संख्या के फैक्टर्स का न्यूनतम योग ढूंढें

    इस लेख में, हम नीचे दिए गए प्रॉब्लम स्टेटमेंट के समाधान के बारे में सीखेंगे: प्रॉब्लम स्टेटमेंट एक नंबर इनपुट दिए जाने पर, दी गई संख्या के फैक्टर्स का न्यूनतम योग ढूंढें। यहां हम सभी फैक्टर्स और उनके संबंधित योग की गणना करेंगे और फिर उनमें से न्यूनतम ढूंढेंगे। तो संख्या के गुणनफल का न्यूनतम योग ढू