কম্পিউটার

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


এই সমস্যাটিতে, আমাদেরকে n উপাদানগুলির একটি অ্যারে এবং একটি পূর্ণসংখ্যার মান k দেওয়া হয়েছে। আমাদের কাজ হল অ্যারের সমস্ত উপাদানের XOR খুঁজে বের করা যেখানে k এর সমান বিট সেট করা আছে।

সমস্যাটি বোঝার জন্য একটি উদাহরণ দেওয়া যাক,

ইনপুট

array = {2, 12, 44, 103, 17} , K =3

আউটপুট

44

এই সমস্যা সমাধানের জন্য, আমরা অ্যারের প্রতিটি উপাদানের সেট বিট গণনা করব এবং k এর সাথে তুলনা করব। যদি সেট বিটের সংখ্যা k এর সমান হয়, তাহলে আমরা এটিকে একটি ভেক্টরে ঠেলে দেব এবং ভেক্টরের সমস্ত উপাদানের XOR খুঁজে বের করব।

সেট বিট গণনা খোঁজার জন্য আমরা __builtin_popcount() ব্যবহার করব যা c++ এ একটি বিল্ট-ইন ফাংশন।

আমাদের সমাধানের বাস্তবায়ন দেখানোর জন্য প্রোগ্রাম,

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int XorKSetBits(int arr[], int n, int k){
   vector<int> kBitElments;
   for (int i = 0; i < n; i++) {
      if (__builtin_popcount(arr[i]) == k) {
         kBitElments.push_back(arr[i]);
      }
   }
   int result = kBitElments[0];
   for (int i = 1; i < kBitElments.size(); i++)
      result ^= kBitElments[i];
   return result;
}
int main(){
   int arr[] = { 2, 12, 44, 103, 17 };
   int n = sizeof(arr) / sizeof(arr[0]);
   int k = 3;
   cout<<"XOR of all element of the array with "<<k<<" set bits is : "<<XorKSetBits(arr, n, k);
   return 0;
}

আউটপুট

XOR of all element of the array with 3 set bits is : 44

  1. C++-এ সমস্ত অ্যারের উপাদানগুলিকে সমান করতে প্রয়োজনীয় ন্যূনতম অপারেশন

  2. C++ এ ধারাবাহিক উপাদানগুলির XOR ব্যবহার করে অ্যারের উপাদানগুলি খুঁজুন

  3. C++ অ্যারের সমস্ত উপাদানে XOR অপারেশন প্রয়োগ করে অ্যারের যোগফলকে মিনিমাইজ করা

  4. একটি অ্যারের (C++) মধ্যে সব জোড়া জোড়া ধারাবাহিক উপাদানের পরম পার্থক্য?