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

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

मान लीजिए कि हमारे पास दो सरणियाँ हैं nums1 और nums2 , हमें इन दो नियमों का पालन करते हुए गठित ट्रिपलेट्स (टाइप 1 और टाइप 2) का पता लगाना है -

  • ट्रिपलेट (i, j, k) यदि nums1[i]^2 =nums2[j] * nums2[k] जहां [0 <=i
  • ट्रिपलेट (i, j, k) यदि nums2[i]^2 =nums1[j] * nums1[k] जहां [0 <=i

इसलिए, यदि इनपुट nums1 =[7,4] nums2 =[5,2,8,9] जैसा है, तो आउटपुट 1 होगा क्योंकि टाइप 1, (1,1,2), nums1 का ट्रिपलेट है। [1] ^ 2 =अंक 2 [1] * अंक 2 [2] =(16 =2 * 8)।

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

  • cnt1 :=प्रत्येक तत्व और उसकी संख्या 1 को रखने के लिए एक नक्शा
  • cnt2 :=प्रत्येक तत्व और उसकी संख्या 2 को पकड़ने के लिए एक नक्शा
  • एक फंक्शन ट्रिपलेट्स() को परिभाषित करें। इसमें arr1, arr2 लगेगा
  • उत्तर:=0
  • प्रत्येक t के लिए, v arr1 के आइटम () में, करते हैं
    • k :=arr2[t] अगर यह वहां है, अन्यथा 0
    • tmp :=k*(k - 1) / 2
    • वर्ग:=टी * टी
    • गिरफ्तारी 2 में प्रत्येक मीटर के लिए
      • यदि m
      • tmp:=tmp + (arr2[m] अगर यह वहां है, अन्यथा 0) * (arr2[sq/m का भागफल] अगर यह वहां है, अन्यथा 0)
  • उत्तर:=उत्तर + टीएमपी * वी
  • वापसी उत्तर
  • मुख्य विधि से, निम्न कार्य करें-
  • रिटर्न ट्रिपल (cnt1, cnt2) + ट्रिपल (cnt2, cnt1)
  • उदाहरण

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

    from collections import Counter
    def solve(nums1, nums2):
       cnt1 = Counter(nums1)
       cnt2 = Counter(nums2)
    
       def triplets(arr1, arr2):
          ans = 0
          for t, v in arr1.items():
             k = arr2.get(t, 0)
             tmp = k * (k - 1) // 2
             sq = t * t
             for m in arr2:
                if m < t and sq % m == 0:
                   tmp += arr2.get(m, 0) * arr2.get(sq // m, 0)
                ans += tmp * v
          return ans
    
       return triplets(cnt1, cnt2) + triplets(cnt2, cnt1)
    nums1 = [7,4]
    nums2 = [5,2,8,9]
    print(solve(nums1, nums2))

    इनपुट

    [7,4],[5,2,8,9]

    आउटपुट

    2

    1. पायथन में n तक जोड़ने के लिए न्यूनतम संख्या में फाइबोनैचि संख्याओं को खोजने का कार्यक्रम?

      मान लीजिए हमारे पास एक संख्या n है; हमें n तक जोड़ने के लिए आवश्यक फाइबोनैचि संख्याओं की न्यूनतम संख्या ज्ञात करनी होगी। इसलिए, यदि इनपुट n =20 जैसा है, तो आउटपुट 3 होगा, क्योंकि हम 20 के योग के लिए फिबोनाची संख्या [2,5, 13] का उपयोग कर सकते हैं। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे र

    1. कुछ संख्याओं का गुणनफल खोजने का कार्यक्रम जिसका योग पायथन में दिया गया है

      मान लीजिए कि हमारे पास एक संख्या n है, हमें दो या दो से अधिक संख्याएँ इस प्रकार ज्ञात करनी हैं कि उनका योग n के बराबर हो, और इन संख्याओं का गुणनफल अधिकतम हो, तो हमें गुणनफल ज्ञात करना होगा। इसलिए, यदि इनपुट n =12 जैसा है, तो आउटपुट 81 होगा, जैसे 3 + 3 + 3 + 3 =12 और 3 * 3 * 3 * 3 =81। इसे हल करने

    1. पायथन में एक संदेश को डिकोड करने के कई तरीकों को खोजने के लिए कार्यक्रम

      मान लीजिए कि हमारे पास ए =1, बी =2, ... जेड =26 जैसी मैपिंग है, और हमारे पास एक एन्कोडेड संदेश संदेश स्ट्रिंग है, हमें इसे डिकोड करने के तरीकों की संख्या गिननी होगी। इसलिए, यदि इनपुट संदेश =222 जैसा है, तो आउटपुट 3 होगा, क्योंकि इसे 3 तरीकों से डिकोड किया जा सकता है:बीबीबी, बीवी, और वीबी। इसे हल क