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

दिए गए सिक्कों के साथ n रुपये प्राप्त करने के तरीके खोजने के लिए पायथन कार्यक्रम

मान लीजिए हमने मूल्यवर्ग (1, 2, 5 और 10) के सिक्के दिए हैं। हमें यह पता लगाना है कि इन प्रभुत्वों का उपयोग करके हम कितने तरीकों से n को व्यवस्थित कर सकते हैं। हमारे पास 4 तत्वों के साथ गिनती नामक एक सरणी है, जहां गिनती [0] 1 के सिक्कों की संख्या इंगित करती है, गिनती [1] 2 के लिए सिक्कों की संख्या इंगित करती है और इसी तरह।

इसलिए, यदि इनपुट n =27 काउंट =[8,4,3,2] जैसा है, तो आउटपुट 18 होगा, इसलिए 18 संभावित संयोजन हैं उनमें से कुछ हैं

  • 10*2 + 5*1 + 2*1 =27

  • 10*2 + 2*3 + 1*1 =27

  • 10*1 + 5*3 + 2*1 =27

  • 10*1 + 5*1 + 4*2 + 4*1 =27

और इसी तरह...

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

  • संप्रदाय :=[1,2,5,10]
  • A :=आकार की एक सरणी (n + 1) और 0 से भरें
  • B :=A से एक नई सूची
  • मैं के लिए 0 से (न्यूनतम गिनती [0] और n) की सीमा में, करते हैं
    • ए[i] :=1
  • 1 से 3 के बीच के लिए, करें
    • जे के लिए रेंज 0 से गिनने के लिए[i], करें
      • के लिए 0 से n + 1 - j *denom[i] की श्रेणी में, do
        • B[k + j * denom[i]] :=B[k + j * denom[i]] + A[k]
    • जे के लिए 0 से n की सीमा में, करें
      • ए[जे]:=बी[जे]
      • बी[जे] :=0
  • वापसी A[n]

उदाहरण

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

denom = [1,2,5,10]

def solve(n, count):
   A = [0 for _ in range(n+1)]
   B = list(A)
   for i in range(min(count[0], n) + 1):
      A[i] = 1
   for i in range(1, 4):
      for j in range(0, count[i] + 1):
         for k in range(n + 1 - j *denom[i]):
            B[k + j * denom[i]] += A[k]
      for j in range(0, n + 1):
         A[j] = B[j]
         B[j] = 0
   return A[n]

n = 27
count = [8,4,3,2]
print(solve(n, count))

इनपुट

27, [8,4,3,2]

आउटपुट

18

  1. पायथन में दिए गए सूचकांकों के साथ स्ट्रिंग को फेरबदल करने का कार्यक्रम

    मान लीजिए कि हमारे पास एक स्ट्रिंग s और सूचकांकों की एक सूची है, वे समान लंबाई के हैं। स्ट्रिंग s को इस तरह से फेरबदल किया जाएगा कि स्थिति i पर वर्ण, अंतिम स्ट्रिंग में सूचकांकों [i] पर चला जाता है। हमें अंतिम स्ट्रिंग ढूंढनी है। इसलिए, यदि इनपुट s =ktoalak ind =[0,5,1,6,2,4,3] जैसा है, तो आउटपुट क

  1. पायथन में दिए गए मैट्रिक्स के स्थानान्तरण को खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक (n बटा n) मैट्रिक्स M है, हमें इसका स्थानान्तरण ज्ञात करना है। जैसा कि हम जानते हैं कि एक मैट्रिक्स का स्थानान्तरण पंक्ति और स्तंभ सूचकांकों को बदल देता है। अधिक औपचारिक रूप से, प्रत्येक r और c के लिए, मैट्रिक्स[r][c] =मैट्रिक्स[c][r]। तो, अगर इनपुट पसंद है 7 2 6 3 7 2 5

  1. कार्यों की संख्या खोजने का कार्यक्रम पायथन में दी गई शर्तों के साथ समाप्त किया जा सकता है

    मान लीजिए हमारे पास कार्यों की एक सूची है और लोगों की एक और सूची है। कार्य [i] ith कार्य को करने के लिए आवश्यक शक्ति की मात्रा निर्धारित करता है। और लोग [i] यह निर्धारित करते हैं कि ith व्यक्ति के पास कितनी ताकत है। अंत में, हमें उन कार्यों की संख्या का पता लगाना होगा जिन्हें पूरा किया जा सकता है यद