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

पायथन में किसी संख्या के अधिकतम कम्पोजिट समन्वयों की संख्या खोजें


मान लीजिए हमारे पास एक दी गई संख्या N है जो रेंज (1 <= N <= 10^9) में है, हमें N को कम्पोजिट समन्वयों के योग के रूप में प्रस्तुत करना है और सबसे बड़ी संभव संख्या लौटानी है, अन्यथा जब हम कोई विभाजन नहीं ढूंढ सकते, तो -1 लौटाएं।

तो, यदि इनपुट 16 जैसा है, तो आउटपुट 4 होगा क्योंकि 16 को 4 + 4 + 4 + 4 या 8 + 8 के रूप में लिखा जा सकता है, लेकिन (4 + 4 + 4 + 4) में अधिकतम समन्वय हैं।

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

  • max_val := 16

  • pre_calc() फंक्शन परिभाषित करें। यह लेगा:

  • table := max_val आकार की एक सूची, फिर प्रत्येक स्थान पर -1 स्टोर करें

  • table[0] := 0

  • v := [4, 6, 9]

  • i को 1 से max_val तक, 1 से बढ़ाकर, करें:

    • k को 0 से 2 तक के लिए, करें:

      • j := v[k]

      • यदि i >= j और table[i-j] -1 नहीं है, तो:

        • table[i] := table[i] और table[i-j] + 1 का अधिकतम

  • table लौटाएं

  • max_summ() फंक्शन परिभाषित करें। यह table, n लेगा।

  • यदि n < max_val, तो:

    • table[n] लौटाएं

  • अन्यथा,

    • t := ((n - max_val) / 4) + 1 का पूर्णांक

    • t + table[n - 4*t] लौटाएं

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

  • table := pre_calc()

  • max_summ(table, n) प्रदर्शित करें

उदाहरण

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

global max_val max_val = 16 def pre_calc():    table = [-1 for i in range(max_val)]    table[0] = 0    v = [4, 6, 9]    for i in range(1, max_val, 1):       for k in range(3):          j = v[k]          if (i >= j and table[i - j] != -1):             table[i] = max(table[i], table[i - j] + 1)    return table def max_summ(table, n):    if (n < max_val):       return table[n]    else:       t = int((n - max_val) / 4)+ 1       return t + table[n - 4 * t] n = 16 table = pre_calc() print(max_summ(table, n))

इनपुट

16

आउटपुट

4

  1. Python प्रोग्राम से सूची में सबसे छोटी संख्या खोजना Python प्रोग्राम से सूची में सबसे छोटी संख्या खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सूची दी गई है, हमें सूची में उपलब्ध सबसे छोटी संख्या प्रदर्शित करने की आवश्यकता है। यहां हम या तो सूची को क्रमबद्ध करके सबसे छोटा तत्व प्राप्त कर सकते हैं या बिल्ट-इन min() फ़ंक्शन का उपयोग करके सबसे छोटा तत्

  1. - पायथन प्रोग्राम: मैप फंक्शन का उपयोग करके अधिकतम 1's वाली पंक्ति खोजना

    2D ऐरे दिया गया है और ऐरे के एलिमेंट्स 0 और 1 हैं। सभी पंक्तियाँ सॉर्टेड हैं। हमें अधिकतम संख्या में 1s वाली पंक्ति खोजनी है। यहां हम map() का उपयोग करते हैं। मैप फंक्शन पायथन बिल्ट-इन्स में से सबसे सरल है जिसका उपयोग फंक्शनल प्रोग्रामिंग के लिए किया जाता है। ये टूल्स फंक्शन्स को सीक्वेंसेज और अन्य

  1. - Python का उपयोग करके संख्या का फैक्टोरियल कैसे खोजें?

    Python में संख्या का फैक्टोरियल खोजना किसी संख्या का फैक्टोरियल 1 और उस संख्या के बीच के सभी पूर्णांकों का गुणनफल होता है। दी गई संख्या का फैक्टोरियल खोजने के लिए, आइए 1 से उस संख्या तक की रेंज पर एक फॉर लूप बनाएं। याद रखें कि range() फ़ंक्शन स्टॉप मान को बाहर करता है। इसलिए स्टॉप मान इनपुट संख्या