কম্পিউটার

C++ ব্যবহার করে n =x + n x এর সমাধানের সংখ্যা নির্ণয় করুন


এই নিবন্ধে আমরা n =x + n ⊕ x সমীকরণের সমাধানের সংখ্যা খুঁজে বের করতে যাচ্ছি, অর্থাৎ আমাদের প্রদত্ত মান n সহ x এর সম্ভাব্য মানের সংখ্যা খুঁজে বের করতে হবে যাতে n =x + n ⊕ x যেখানে ⊕ XOR অপারেশনকে প্রতিনিধিত্ব করে .

এখন আমরা একটি উপযুক্ত উদাহরণ সহ n =x + n ⊕ x এর সমাধানের সংখ্যা সম্পর্কিত সম্পূর্ণ তথ্য আলোচনা করব।

ব্রুট ফোর্স মেথড

সমাধানের সংখ্যা বের করার জন্য আমরা সহজভাবে ব্রুট ফোর্স পদ্ধতি ব্যবহার করতে পারি, যেমন n এর প্রদত্ত মানের জন্য আমরা 0 থেকে শুরু করে x এর প্রতিটি পূর্ণসংখ্যার মান প্রয়োগ করি এবং যাচাই করি যে সমীকরণটি সন্তুষ্ট হয় কি না, x এর মান এর চেয়ে কম বা সমান হওয়া উচিত n কারণ (n ⊕ x) এর সাথে n এর চেয়ে বেশি মান যোগ করলে উত্তর হিসাবে n কখনই ফেরত আসবে না।

উদাহরণ

n =3?

এর জন্য x এর একটি মান খুঁজুন
   n = x + n ⊕ x
Putting x = 0,
   3 = 0 + 3 ⊕ 0
3 ⊕ 0 = 3,
   3 = 3
   LHS = RHS(x = 0 satisfy the equation)
So, x = 0 is one of the solution

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n = 3, c=0;
    for (int x = 0; x <= n; ++x)// loop for giving value of x from 0 to n
        if (n == x + n ^ x)//checking if value of x satisfies the equation
            ++c;
    cout  << "Number of possible solutions : " << c;
    return 0;
}

আউটপুট

Number of possible solutions : 4

ব্রুট ফোর্স পদ্ধতি প্রয়োগ করে n =x + n ⊕ x এর সমাধানের সংখ্যা বের করার জন্য এটি একটি সহজ C++ প্রোগ্রাম।

দক্ষ পদ্ধতি

এই পদ্ধতিতে, যদি আমরা n দেখি বাইনারি আকারে, আমাদেরকে 1 সেট করা বিটের সংখ্যা খুঁজে বের করতে হবে এবং সমীকরণটি দেখে আমরা বলতে পারি যদি n সেট করা হয়, তাহলে হয় x সেট করা হবে বা n ⊕ x সেট করা হবে কারণ 1 ⊕ 1 =0। এর মানে হল যে n ⊕ x-এ এটি সেট করা নেই, তাই এখন আমরা n-এ প্রতিটি সেট বিটের জন্য পারমুটেশনের সংখ্যা শেষ করতে পারি, অর্থাৎ 2^(সেট বিটের সংখ্যা )।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int main (){
    int n = 3, no_of_setbits = 0;    // initialising n with value and taking count of set bits as 0
    while (n != 0){
        no_of_setbits = no_of_setbits + (n % 2);    // checking if num contains set bit.
        n = n / 2;
    }
    int result = 1 << no_of_setbits;    // calculating no. of possible solution with 2^setbits
    cout << " Number of possible solutions : " << result;
    return 0;
}

আউটপুট

Number of possible solutions : 4

প্রোগ্রামের জটিলতা

এই পদ্ধতির সময় জটিলতা হল O(n), কারণ আমরা এখানে ব্রুট ফোর্স প্রয়োগ করছি। আমরা প্রোগ্রামের দক্ষতা উন্নত করতে আরও কার্যকর পদ্ধতি প্রয়োগ করতে পারি।

উপসংহার

এই নিবন্ধে, আমরা একটি সমস্যার সমাধান করি যাতে অনেকগুলি সমাধান খুঁজে পাওয়া যায় −

n =x + n ⊕ x। এছাড়াও আমরা এই সমস্যার জন্য C++ প্রোগ্রাম শিখেছি এবং সম্পূর্ণ পদ্ধতির মাধ্যমে আমরা এই সমস্যার সমাধান করেছি। আমরা অন্যান্য ভাষা যেমন সি, জাভা, পাইথন এবং অন্যান্য ভাষায় একই প্রোগ্রাম লিখতে পারি। আশা করি আপনি এই নিবন্ধটি সহায়ক বলে মনে করেন৷


  1. C++ ব্যবহার করে পঞ্চভুজ পিরামিডাল নম্বর খুঁজুন

  2. C++ ব্যবহার করে একটি স্ট্রিং এর সাবস্ট্রিং এর সংখ্যা খুঁজুন

  3. C++ ব্যবহার করে স্টপিং স্টেশনের সংখ্যা খুঁজুন

  4. C++ ব্যবহার করে একটি সেটে রিফ্লেক্সিভ রিলেশনের সংখ্যা খুঁজুন