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

C++-এ একটি অ্যারেতে সব সম্ভাব্য পেয়ারের সমের XOR

এই সমস্যায়, আমাদের n উপাদানের একটি অ্যারে দেওয়া আছে। আমাদের কাজ হল n*n সাইজের একটি সিকোয়েন্স জেনারেট করা যার এলিমেন্টগুলো হল অ্যারে A-এর সব এলিমেন্টের সাথে নিজের সব সম্ভাব্য পেয়ারের সম। এবং এই সম অ্যারে তৈরি হয়ে গেলে এর এলিমেন্টগুলোর XOR প্রিন্ট করা।

একটি উদাহরণ দিয়ে সমস্যাটি বুঝতে পারি,

ইনপুট — A (1, 4, 5)

আউটপুট — 0

ব্যাখ্যা —

B (1+1, 1+4, 1+5, 4+1, 4+4, 4+5, 5+1, 5+4, 5+5)
B(2,5,6,5,8,9,6,9,10)
Xor of all values = 2^5^6^5^8^9^6^9^10 = 0.

এই সমস্যাটি সমাধান করতে, আমাদের XOR-এর কিছু প্রোপার্টি জানতে হবে। প্রথমত, একই নাম্বারের সাথে নিজের XOR ০। এখন, নতুন তৈরি অ্যারেতে একাধিক এলিমেন্ট একই আছে, এলিমেন্ট a[i]+a[j] এবং a[j]+a[i] একই তাই তাদের XOR ০ হবে। তাই, আমরা শুধু 2*a[i] এলিমেন্টগুলো বাকি রাখব, আমরা সব a[i] এলিমেন্টের XOR নিব এবং তাকে দুই গুন করব। এটি আমাদের ফাইনাল আউটপুট হবে।

উদাহরণ

আমাদের অ্যালগরিদমের ইমপ্লিমেন্টেশন দেখানোর প্রোগ্রাম

#include <iostream>
using namespace std;

int findSumXor(int arr[], int n) {
    int XOR = 0;
    for (int i = 0; i < n; i++) {
        XOR = XOR ^ arr[i];
    }
    return XOR * 2;
}

int main() {
    int arr[3] = {2, 4, 7};
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << "The xor of the sum pair of elements of the array is\t" << findSumXor(arr, n);
    return 0;
}

আউটপুট

The xor of the sum pair of elements of the array is 2
  1. C++ STL-এ অ্যারে যোগফল (Array Sum)

  2. C++-এ অ্যারের সব উপাদানে XOR অপারেশন প্রয়োগ করে অ্যারে যোগফল ন্যূনীকরণ

  3. C++ সম অ্যারে পাজল (Sum Array Puzzle)

  4. C++-এ সম অ্যারে পাজল (Sum Array Puzzle) সমাধান