কম্পিউটার

C++ এ অ্যারের উপাদানগুলির ফ্রিকোয়েন্সি গণনা করা হচ্ছে


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

ইনপুট − int arr[] ={1, 1, 2, 3, 4, 1, 2, 3}

আউটপুট

frequency of 1 is: 3
frequency of 2 is: 2
frequency of 3 is: 2
Frequency of 4 is: 1

ইনপুট − int arr[] ={2, 3, 4, 1, 5}

আউটপুট

frequency of 1 is: 1
frequency of 2 is: 1
frequency of 3 is: 1
Frequency of 4 is: 1
Frequency of 5 is: 1

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

এর জন্য একাধিক সমাধান থাকতে পারে এবং সেগুলি কোডিং পদে সহজ বা জটিলতার শর্তে সহজ হতে পারে। সুতরাং আসুন প্রথমে কোডিং পদে সহজ পদ্ধতির দিকে তাকান

  • পূর্ণসংখ্যার ধরন ভেরিয়েবলের একটি অ্যারে তৈরি করুন

  • size() ফাংশন ব্যবহার করে একটি অ্যারের আকার গণনা করুন।

  • একটি বুলিয়ান অ্যারে তৈরি করুন ধরা যাক, অ্যারের আকার পরীক্ষা করুন

  • i থেকে 0 এবং i আকারের চেয়ে কম FOR লুপ শুরু করুন

  • লুপের ভিতরে, check[i] =0

    সেট করুন
  • i থেকে 0 এবং i আকারের চেয়ে কম FOR লুপ শুরু করুন

  • লুপের ভিতরে, IF check[i] =1 তারপর চালিয়ে যান

  • পরিবর্তনশীল গণনা ঘোষণা করুন এবং এটিকে 1 দিয়ে আরম্ভ করুন যা ফ্রিকোয়েন্সি গণনা মুদ্রণ করবে

  • i+1 থেকে আকার পর্যন্ত j এর জন্য লুপ শুরু করুন

  • লুপের ভিতরে, arr[i] =arr[j] কিনা তা পরীক্ষা করুন তারপর check[j] কে 1 এ সেট করুন এবং গণনা 1 দ্বারা বৃদ্ধি করুন

  • গণনার মান প্রিন্ট করুন।

এর আরেকটি সমাধান হতে পারে −

  • পূর্ণসংখ্যার ধরন ভেরিয়েবলের একটি অ্যারে তৈরি করুন

  • size() ফাংশন ব্যবহার করে একটি অ্যারের আকার গণনা করুন।

  • unordered_map টাইপের একটি ভেরিয়েবল তৈরি করুন চলুন um

    বলি
  • i থেকে 0 এবং আকার পর্যন্ত FOR লুপ শুরু করুন

  • লুপের ভিতরে, um[arr[i]]++

    সেট করুন
  • অটো x থেকে উম

    এর জন্য আরেকটি লুপ শুরু করুন
  • লুপের ভিতরে, ফ্রিকোয়েন্সি প্রিন্ট করুন।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int frequency(int arr[], int size){
   bool check[size];
   for(int i=0;i<size;i++){
      check[i] = 0;
   }
   for(int i=0; i<size; i++){
      if(check[i]== 1){
         continue;
      }
      int count = 1;
      for(int j = i+1; j<size; j++){
         if (arr[i] == arr[j]){
            check[j] = 1;
            count++;
         }
      }
      cout<<"frequency of "<<arr[i]<<" is: " << count << endl;
   }
}
int main(){
   int arr[] = {1, 2, 3, 1, 2, 3};
   //calculate the size of an array
   int size = sizeof(arr) / sizeof(arr[0]);
   //call function to calculate the frequency
   frequency(arr, size);
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
frequency of 1 is: 2
frequency of 2 is: 2
frequency of 3 is: 2

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
void frequency(int arr[], int size){
   unordered_map<int, int< um;
   for (int i = 0; i < size; i++){
      um[arr[i]]++;
   }
   for (auto x : um){
      cout<<"frequency of "<<x.first<<" is: "<< x.second<< endl;
   }
}
int main(){
   int arr[] = {1, 2, 3, 1, 2, 3 };
   int size = sizeof(arr) / sizeof(arr[0]);
   frequency(arr, size);
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
frequency of 3 is: 2
frequency of 1 is: 2
frequency of 2 is: 2

  1. অ্যারের উপাদানগুলির গুণনের জন্য C++ প্রোগ্রাম

  2. C++ এ প্রাইম ফ্রিকোয়েন্সি সহ অ্যারে উপাদান?

  3. গণনা সাজানোর জন্য C++ প্রোগ্রাম

  4. পয়েন্টার ব্যবহার করে একটি অ্যারের উপাদান অ্যাক্সেস করার জন্য C++ প্রোগ্রাম