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

पायथन में दो मुद्राओं की रूपांतरण दर खोजने का प्रोग्राम

मान लीजिए हमें तीन सरणियाँ दी गई हैं: curr_a, curr_b, और conv_rate। पहली सरणी में कुछ मुद्रा नाम हैं और दूसरी में भी, और सरणी conv_rate में curr_a[i] से curr_b[i] के भीतर रूपांतरण की दरें हैं। conv_rate[i] आइटम curr_a[i] और curr_b[i] के बीच रूपांतरण दर है। अब, हमें दो मुद्राएँ src और dest दी गई हैं। हमें src से dest तक रूपांतरण की दर पता लगानी है। हम मान को आउटपुट के रूप में लौटाते हैं, और यदि यह संभव नहीं है तो हम 0 लौटाते हैं।

इसलिए, यदि इनपुट है src = "INR", dest = "JPY", curr_a = ["INR", "GBP", "EUR"], curr_b = ["GBP", "EUR", "JPY"], conv_rate = [0.009, 1.17, 129.67], तो आउटपुट होगा 1.3654250999999997।

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

  • temp := एक नया मैप जिसमें डिफ़ॉल्ट मान 0 हो
  • temp[src] := 1
  • i := 0
  • p := True
  • जब p और i <= temp का आकार, करें:
    • p := False
    • curr_a में प्रत्येक x, curr_b में y, और conv_rate में z के लिए, करें:
      • यदि temp[x] * z > temp[y] शून्येतर है, तो:
        • temp[y] := temp[x] * z
        • p := True
    • i := i + 1
  • यदि i <= temp का आकार, तो:
    • temp[dest] लौटाएं
  • अन्यथा:
    • -1 लौटाएं

उदाहरण

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

from collections import defaultdict
def solve(src, dest, curr_a, curr_b, conv_rate):
    temp = defaultdict(int)
    temp[src] = 1
    i = 0
    p = True
    while p and i <= len(temp):
        p = False
        for x, y, z in zip(curr_a, curr_b, conv_rate):
            if temp[x] * z > temp[y]:
                temp[y] = temp[x] * z
                p = True
        i += 1
    return temp[dest] if i <= len(temp) else -1
print(solve("INR", "JPY", ["INR", "GBP", "EUR"], ["GBP", "EUR", "JPY"], [0.009, 1.17, 129.67]))

इनपुट

"INR", "JPY", ["INR", "GBP", "EUR"], ["GBP", "EUR", "JPY"], [0.009, 1.17, 129.67]

आउटपुट

1.3654251
  1. पायथन में जांचें कि ग्राफ सभी द्वारा पारगम्य है या नहीं पायथन में जांचें कि ग्राफ सभी द्वारा पारगम्य है या नहीं

    मान लीजिए, हमें एक ग्राफ दिया गया है जिसमें n शीर्ष हैं जो 0 से n-1 तक क्रमांकित हैं। ग्राफ अनिर्देशित है और प्रत्येक किनारे का एक भार है। ग्राफ में तीन प्रकार के भार हो सकते हैं और प्रत्येक भार एक विशेष कार्य को दर्शाता है। दो लोग हैं जो ग्राफ को पार कर सकते हैं, अर्थात् जैक और केसी। जैक ग्राफ को

  1. - पायथन में अध्ययन का कुशल तरीका ज्ञात करने का प्रोग्राम

    मान लीजिए हमारे पास तीन सूचियाँ हैं जिनकी लंबाई समान है: deadlines, credits, और durations। ये कोर्स असाइनमेंट दर्शाते हैं। i-वें असाइनमेंट के लिए deadlines[i] इसकी अंतिम तिथि, credits[i] इसका क्रेडिट, और durations[i] इसे पूरा करने में लगने वाले दिन हैं। एक असाइनमेंट को दूसरे से पहले पूरा करना होगा।

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

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट एक संख्या n दिए जाने पर, हमें जांचना होगा कि दी गई संख्या दो की घात है या नहीं। दृष्टिकोण इनपुट नंबर को दो से विभाजित करते रहें, यानी n/2 इटरेटिवली। प्रत्येक इटरेशन में जांचें, यदि