কম্পিউটার টিউটোরিয়াল

C++-এ অ্যারেতে স্বতন্ত্র উপাদান গণনা

আমাদের একটি অসর্টেড অ্যারে দেওয়া আছে যেকোনো আকারের যার মধ্যে পুনরাবৃত্তিমূলক উপাদান রয়েছে, এবং আমাদের কাজ হল অ্যারেতে স্বতন্ত্র উপাদানগুলির সংখ্যা গণনা করা।

উদাহরণ

ইনপুট− int arr[] = {1, 1, 2, 3, 3, 4, 4} আউটপুট − গণনা 4

ব্যাখ্যা − দেওয়া অ্যারেতে 4টি স্বতন্ত্র উপাদান রয়েছে: 1, 2, 3, 4। কিন্তু অ্যারের আকার 7 কারণ এতে পুনরাবৃত্তিমূলক উপাদান রয়েছে। আমাদের কাজ হল ডুপ্লিকেট সরিয়ে তারপর অ্যারে উপাদান গণনা করা।

ইনপুট − int arr[] = {1, 2, 3, 4, 5, 5, 5, 5} আউটপুট − গণনা 5

ব্যাখ্যা − দেওয়া অ্যারেতে 5টি স্বতন্ত্র উপাদান রয়েছে: 1, 2, 3, 4, 5। কিন্তু অ্যারের আকার 8 কারণ এতে পুনরাবৃত্তিমূলক উপাদান রয়েছে। আমাদের কাজ হল ডুপ্লিকেট সরিয়ে তারপর অ্যারে উপাদান গণনা করা।

প্রোগ্রামে ব্যবহৃত পদ্ধতি

sort() ফাংশন ব্যবহার করে

  • একটি অ্যারে তৈরি করুন, যেমন arr[]
  • length() ফাংশন দিয়ে অ্যারের দৈর্ঘ্য গণনা করুন
  • sort ফাংশন কল করুন এবং অ্যারে ও আকার প্যারামিটার হিসেবে পাস করুন
  • একটি অস্থায়ী ভেরিয়েবল নিন যা স্বতন্ত্র উপাদানগুলির গণনা সংরক্ষণ করবে
  • i = 0 থেকে i < size পর্যন্ত লুপ শুরু করুন
  • লুপের ভিতরে, while i < size-1 && arr[i] == arr[i+1] চালান
  • while-এর ভিতরে i-এর মান বৃদ্ধি করুন
  • for-লুপের ভিতরে count-এর মান বৃদ্ধি করুন
  • count ফেরত দিন
  • ফলাফল প্রিন্ট করুন

সর্টিং ছাড়া

  • একটি অ্যারে তৈরি করুন, যেমন arr[]
  • length() ফাংশন দিয়ে অ্যারের দৈর্ঘ্য গণনা করুন
  • একটি অস্থায়ী ভেরিয়েবল নিন যা স্বতন্ত্র উপাদানগুলির গণনা সংরক্ষণ করবে
  • i = 1 থেকে i < size পর্যন্ত লুপ শুরু করুন
  • লুপের ভিতরে j = 0 সেট করুন এবং j = 0 থেকে j < i পর্যন্ত আরেকটি লুপ শুরু করুন
  • এই লুপের ভিতরে, যদি arr[i] == arr[j] হয় তবে break করুন
  • যদি i == j হয় তবে count 1 বৃদ্ধি করুন
  • count ফেরত দিন
  • ফলাফল প্রিন্ট করুন

উদাহরণ

সর্টিংসহ

#include <algorithm>
#include <iostream>
using namespace std;

int distinct_elements(int arr[], int n) {
    // অ্যারে সর্ট করুন
    sort(arr, arr + n);
    
    // সর্টেড অ্যারে ট্রাভার্স করুন
    int count = 0;
    for (int i = 0; i < n; i++) {
        // ডুপ্লিকেট পাওয়ার সময় ইনডেক্স এগিয়ে নিন
        while (i < n - 1 && arr[i] == arr[i + 1]) {
            i++;
        }
        count++;
    }
    return count;
}

// Main ফাংশন
int main() {
    int arr[] = { 3, 6, 5, 8, 2, 3, 4 };
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << "count is " << distinct_elements(arr, n);
    return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি রান করি তবে নিচের আউটপুট পাব −

count is 6

উদাহরণ

সর্টিং ছাড়া

#include <iostream>
using namespace std;

int countDistinct(int a[], int size) {
    int i, j, count = 1;
    for (i = 1; i < size; i++) {
        for (j = 0; j < i; j++) {
            if (a[i] == a[j]) {
                break;
            }
        }
        if (i == j) {
            count++;
        }
    }
    return count;
}

// Main ফাংশন
int main() {
    int a[] = { 3, 6, 5, 8, 2, 3, 4 };
    int size = sizeof(a) / sizeof(a[0]);
    cout << "count is " << countDistinct(a, size);
    return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি রান করি তবে নিচের আউটপুট পাব −

count is 6
  1. C++-এ একটি ইন্টিজার অ্যারে থেকে সব স্বতন্ত্র উপাদান প্রিন্ট করা

  2. অ্যারেতে নন-রিপিটিং (ডISTINCT) এলিমেন্টের গুণফল C++-তে

  3. C++ তে সর্টেড অ্যারেতে এবসোলিউট ডিস্টিংক্ট কাউন্ট

  4. পাইথনে অ্যারেতে ডিস্টিনক্ট এলিমেন্ট গণনা