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

Python में (आधार, संख्या) जोड़े वाली सरणी में मैचों की संख्या खोजें

मान लीजिए, हमें (x, y) फॉर्मेट में कई अलग-अलग जोड़े दिए गए हैं। यहां x एक संख्या का आधार दर्शाता है और y स्वयं संख्या को दर्शाता है। सूची में ऐसे जोड़े हैं जिनका अर्थ समान है। हमें दी गई संख्या जोड़े में मैचों की संख्या जांचनी है। दिए गए जोड़े रिडंडेंट हो सकते हैं, और अमान्य आधार-संख्या संयोजन भी हो सकते हैं।

इसलिए, यदि इनपुट है: num_inputs = 2, input_arr = [(10, 15), (8, 17)], तो आउटपुट 1 होगा।

वेरिएबल num_inputs इनपुट की संख्या निर्दिष्ट करता है, और सरणी input_arr संख्या जोड़े सूचीबद्ध करती है। यहां यदि हम दोनों जोड़ों को देखें; बेस 10 (दशमलव) में 15, बेस 8 (ऑक्टल) में 17 के समान है। तो, एक मैच है और हम आउटपुट मान 1 वापस करते हैं।

हल करने के चरण

  • arr_len := input_arr का आकार
  • temp_dict := पूर्णांक मानों वाला एक नया मैप
  • i को 0 से num_inputs तक के लिए:
    • num_base := input_arr में जोड़े i की पहली संख्या का स्ट्रिंग प्रतिनिधित्व
    • num_val := input_arr में जोड़े i की दूसरी संख्या का स्ट्रिंग प्रतिनिधित्व
    • temp_dict[int(num_val, int(num_base))] := temp_dict[int(num_val, int(num_base))] + 1
  • cnt := 0
  • temp_dict के सभी मानों की सूची में प्रत्येक value के लिए: cnt := cnt + value * floor((value - 1) / 2)
  • cnt वापस करें

उदाहरण

from collections import defaultdict

def solve(num_inputs, input_arr):
    arr_len = len(input_arr)
    temp_dict = defaultdict(int)
    for i in range(num_inputs):
        num_base, num_val = str(input_arr[i][0]), str(input_arr[i][1])
        temp_dict[int(num_val, int(num_base))] += 1
    cnt = 0
    for value in temp_dict.values():
        cnt += value * (value - 1) // 2
    return cnt

print(solve(2, [(10, 15), (8, 17)]))

इनपुट

2, [(10, 15), (8, 17)]

आउटपुट

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

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

  1. Python प्रोग्राम से ऐरे में सबसे बड़ा तत्व खोजना Python प्रोग्राम से ऐरे में सबसे बड़ा तत्व खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक ऐरे दिया गया है, हमें ऐरे के सबसे बड़े तत्व की गणना करने की आवश्यकता है। यहां हम ब्रूट-फोर्स दृष्टिकोण का उपयोग करते हैं जिसमें हम पूरे लूप को पार करके और तत्व प्राप्त करके सबसे बड़ा तत्व निकालते हैं। हम नीच

  1. पायथन प्रोग्राम: ऐरे का योग ढूंढें पायथन प्रोग्राम: ऐरे का योग ढूंढें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट इनपुट के रूप में एक ऐरे दिए जाने पर, हमें दिए गए ऐरे का योग निकालने की आवश्यकता है। यहां हम ब्रूट-फोर्स दृष्टिकोण का पालन कर सकते हैं यानी एक लिस्ट को ट्रैवर्स करना और प्रत्येक एलिमें