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

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

मान लीजिए हमें तीन सरणियाँ दी गई हैं; curr_a, curr_b, और conv_rate. पहली सरणी में कुछ मुद्रा नाम होते हैं और दूसरा भी होता है, और सरणी conv_rate में एक आइटम curr_a [i] से cuur_b [i] में रूपांतरण की दरें होती हैं। conv_rate[i] का आइटम curr_a[i] और curr_b[i] के बीच की रूपांतरण दर है। अब, हमें दो मुद्राएँ 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.36542509999999997

होगा

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

  • अस्थायी:=एक नया नक्शा जिसमें डिफ़ॉल्ट मान के रूप में 0 शामिल है
  • अस्थायी[src] :=1
  • मैं :=0
  • p :=सच
  • जबकि p और i <=तापमान का आकार, करते हैं
    • p :=असत्य
    • प्रत्येक x के लिए curr_a, y in curr_b, और z conv_rate में, करें
      • यदि अस्थायी [x] * z> अस्थायी [y] शून्य नहीं है, तो
        • अस्थायी[y] :=अस्थायी[x] * z
        • p :=सच
      • i :=i + 1
  • अगर मैं <=तापमान का आकार, तो
    • वापसी अस्थायी[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. पायथन में अध्ययन करने का प्रभावी तरीका खोजने का कार्यक्रम

    मान लीजिए, हमारे पास तीन सूचियाँ हैं जिनकी लंबाई समान है। ये समय सीमा, क्रेडिट और अवधि हैं। वे पाठ्यक्रम असाइनमेंट का प्रतिनिधित्व कर रहे हैं। i−th असाइनमेंट की समय सीमा के लिए [i] इसकी समय सीमा दिखाता है, क्रेडिट [i] अपना क्रेडिट दिखाता है, और अवधि [i] असाइनमेंट पूरा करने में लगने वाले दिनों की संख

  1. पायथन प्रोग्राम यह पता लगाने के लिए कि क्या नहीं दो की शक्ति है

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