কম্পিউটার

একটি অ্যারেতে জোড়া গণনা করুন যাতে উভয় উপাদানই C++ এ সমান সেট বিট থাকে


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

একটি বাইনারি সংখ্যার সেট বিটগুলি 1 দ্বারা প্রতিনিধিত্ব করা হয়। যখনই আমরা একটি পূর্ণসংখ্যা মানের বাইনারি সংখ্যা গণনা করি তখন এটি 0 এবং 1 এর সমন্বয় হিসাবে গঠিত হয়। সুতরাং, 1 সংখ্যাটি কম্পিউটারের পরিভাষায় সেট বিট হিসাবে পরিচিত।

ইনপুট

int arr[] = {6, 5, 1, 3, 7}

আউটপুট

Count of pairs in an array such that both elements has equal set bits are: 3

ব্যাখ্যা

The pairs formed from the given array are-:
(6, 5): 6 -> 2 set bits, 5 -> 2 set bits :(valid pair)
(6, 5): 6 -> 2 set bits, 1 -> 1 set bit:(invalid pair)
(6, 3): 6 -> 2 set bits, 3 -> 2 set bits :(valid pair)
(6, 7): 6 -> 2 set bits, 7 -> 3 set bits :(invalid pair)
(5, 1): 5 -> 2 set bits, 1 -> 1 set bits :(invalid pair)
(5, 3): 5 -> 2 set bits, 3 -> 2 set bits :(valid pair)
(5, 1): 5 -> 2 set bits, 7 -> 3 set bits :(invalid pair)
(1, 3): 1 -> 1 set bits, 3 -> 2 set bits :(invalid pair)
(1, 3): 1 -> 1 set bits, 7 -> 3 set bits :(invalid pair)
(3, 7): 3 -> 2 set bits, 7 -> 3 set bits :(invalid pair)
So, there are 3 valid pairs with equal number of set bits and those are (6, 5), (6, 3) and (5, 2)

ইনপুট

int arr[] = {4, 6, 3, 2}

আউটপুট

Count of pairs in an array such that both elements has equal set bits are: 3

ব্যাখ্যা

The pairs formed from the given array are-:
(4, 6): 4 -> 1 set bits, 6 -> 2 set bits :(invalid pair)
(4, 3): 4 -> 1 set bits, 3 -> 2 set bits :(invalid pair)
(4, 2): 4 -> 1 set bits, 2 -> 1 set bits :(valid pair)
(6, 3): 6 -> 2 set bits, 3 -> 2 set bits :(valid pair)
(6, 2): 6 -> 2 set bits, 2 -> 1 set bits :(invalid pair)
(3, 2): 3 -> 2 set bits, 2 -> 1 set bits :(invalid pair)
So, there are 2 valid pairs with equal number of set bits and those are (4, 2) and (6, 3).

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

  • পূর্ণসংখ্যা উপাদানগুলির একটি অ্যারে ইনপুট করুন এবং একটি অ্যারের আকার গণনা করুন এবং ফাংশনে ডেটা পাস করুন

  • সেট বিটগুলির সমান সংখ্যা সহ জোড়ার গণনা সংরক্ষণ করতে একটি অস্থায়ী পরিবর্তনশীল গণনা ঘোষণা করুন৷

  • একটি অ্যারের আকার পর্যন্ত i থেকে 0 পর্যন্ত লুপ শুরু করুন

  • লুপের ভিতরে, একটি অ্যারের আকার পর্যন্ত j থেকে i + 1 পর্যন্ত আরেকটি লুপ FOR শুরু করুন

  • লুপের ভিতরে, '__builtin_popcount(element)' ফাংশনটিকে কল করে সেট বিটের মোট সংখ্যা হিসাবে একটি জোড়ার প্রথম এবং দ্বিতীয় উপাদান সেট করুন যা একটি পূর্ণসংখ্যার সেট বিটের মোট সংখ্যা প্রদান করে।

  • একটি জোড়ার প্রথম এবং দ্বিতীয় উপাদানের সেট বিটগুলি সমান কিনা তা পরীক্ষা করুন তারপর গণনাটি 1 দ্বারা বৃদ্ধি করুন

  • গণনা ফেরত দিন

  • প্রিন্ট ফলাফল।

উদাহরণ

#include <iostream>
using namespace std;
int pair_setBit(int arr[], int size){
   int count = 0;
   for(int i = 0 ;i <size ; i++){
      for(int j = i+1; j<size; j++){
         int first = __builtin_popcount(arr[i]);
         int second = __builtin_popcount(arr[j]);
         if(first == second){
            count++;
         }
      }
   }
   return count;
}
int main(){
   int arr[] = {6, 5, 1, 3, 7};
   int size = sizeof(arr) / sizeof(arr[0]);
   cout<<"Count of pairs in an array such that both elements has equal set bits are: "<<pair_setBit(arr, size);
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
Count of pairs in an array such that both elements has equal set bits are: 3

  1. C++ এ K এর সমান সেট বিট সহ অ্যারের সমস্ত উপাদানের XOR

  2. একটি অ্যারের সমস্ত জোড়া গণনা করুন যা C++-এ K বিটে আলাদা

  3. একটি অ্যারেতে সমস্ত জোড়া (a, b) খুঁজুন যেমন একটি % b =k C++ এ

  4. C++ এ সেট বিটের গণনা অনুসারে একটি অ্যারে সাজান