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

C++ में विशिष्ट सम संख्याओं वाले सबसेट की गिनती


हमें धनात्मक पूर्णांकों की एक सरणी दी गई है। लक्ष्य सरणी में संख्याओं के उन सबसेट को ढूंढना है जिनमें प्रत्येक सबसेट में विशिष्ट सम संख्याएँ हों। समान तत्वों वाले सभी सेट को 1 के रूप में गिना जाएगा। [2,4,6] और [6,2,4] समान सेट हैं।

उदाहरण सहित समझ

इनपुट - arr[] = {1,3,5,7,8,3,2 };

आउटपुट - विशिष्ट सम संख्याओं वाले सबसेट की संख्या: 3

व्याख्या - सबसेट होंगे: [2], [8], [2,8]

इनपुट - arr[] = {2,4,6 };

आउटपुट - विशिष्ट सम संख्याओं वाले सबसेट की संख्या: 7

व्याख्या - सबसेट होंगे: [2], [4], [6], [2,4], [2,6], [4,6], [2,4,6]

प्रोग्राम में उपयोग किया गया दृष्टिकोण

हम सरणी में सभी सम संख्याओं का एक सेट बनाते हैं। यह विशिष्ट सम संख्याओं की संख्या देता है। सूत्र होगा 2^even_count - 1।

  • संख्याओं की एक सरणी arr[] लें।
  • फंक्शन subset_even(int arr[], int size) संख्याओं की सरणी लेता है और विशिष्ट सम संख्याओं वाले सबसेट लौटाता है।
  • प्रारंभिक काउंट 0 लें।
  • सम संख्याओं के लिए एक unordered_set<int> un_set बनाएं।
  • फॉर लूप का उपयोग करके arr[] को ट्रैवर्स करें। i=0 से i<length तक।
  • यदि arr[i] % 2 == 0, यह सम है। un_set में डालें।
  • count = un_set.size() लें // विशिष्ट सम संख्याएँ।
  • count = pow(2, count) - 1 अपडेट करें।
  • परिणाम के रूप में काउंट लौटाएँ।

उदाहरण

#include <bits/stdc++.h>
using namespace std;

int subset_even(int arr[], int size) {
    int count = 0;
    unordered_set<int> un_set;
    for (int i = 0; i < size; i++) {
        if (arr[i] % 2 == 0) {
            un_set.insert(arr[i]);
        }
    }
    count = un_set.size();
    count = pow(2, count) - 1;
    return count;
}

int main() {
    int arr[] = {10, 4, 21, 3, 5, 7, 6, 8};
    int size = sizeof(arr) / sizeof(arr[0]);
    cout << "Count of subsets having distinct even numbers are: " << subset_even(arr, size);
    return 0;
}

आउटपुट

Count of subsets having distinct even numbers are: 15
  1. - C++ में अधिकतम सन्निकट सम संख्याओं की संख्या ज्ञात करें

    मान लीजिए हमारे पास n तत्वों की एक सरणी A है। हमें दी गई सरणी में अधिकतम सन्निकट सम संख्याओं की संख्या ढूंढनी है। इसलिए यदि सरणी A = [1, 2, 3, 4, 6, 8, 7] की तरह है, तो गिनती 3 होगी। हम इसे आसानी से हल कर सकते हैं। हमें दो काउंट वेरिएबल चाहिए: एक max_current, और दूसरा max_till_now। यदि एक सम संख्या

  1. - C++ में सॉर्टेड एरे में निरपेक्ष विशिष्ट गिनती

    एक एरे समान डेटा प्रकार के तत्वों का एक संग्रह है। एक सॉर्टेड एरे एक एरे है जिसमें तत्व आरोही या अवरोही क्रम के अनुक्रम में संग्रहीत होते हैं। विशिष्ट गिनती उन तत्वों की संख्या है जो समान नहीं हैं। निरपेक्ष विशिष्ट गिनती तत्वों के निरपेक्ष मान की विशिष्ट गिनती है यानी चिह्न के बिना मान (अनसाइन्ड मा

  1. - C++ में सरणी इंडेक्स जहां दोनों तरफ सम या विषम संख्याओं की गिनती समान हो

    यहां हम एक समस्या देखेंगे, मान लीजिए एक सरणी दी गई है। इसमें n तत्व हैं। हमें एक इंडेक्स ढूंढना है, जहां उसके बाईं ओर सम संख्याओं की आवृत्ति और उसके दाईं ओर सम संख्याओं की आवृत्ति समान हो, या उसके बाईं ओर विषम संख्याओं की आवृत्ति उसके दाईं ओर विषम संख्याओं की आवृत्ति के समान हो। यदि ऐसा कोई परिणाम न