এই নিবন্ধে, আমরা একটি প্রদত্ত সংখ্যা N.
এর সমতা খুঁজে বের করার জন্য একটি প্রোগ্রাম নিয়ে আলোচনা করবপ্যারিটি একটি সংখ্যার বাইনারি উপস্থাপনায় সেট বিটের সংখ্যা (‘1’-এর সংখ্যা) হিসাবে সংজ্ঞায়িত করা হয়।
বাইনারি উপস্থাপনায় ‘1’-এর সংখ্যা জোড় হলে, সমতাকে জোড় সমতা বলা হয় এবং বাইনারি উপস্থাপনায় ‘1’-এর সংখ্যা বিজোড় হলে, সমতাকে বিজোড় সমতা বলে।
যদি প্রদত্ত সংখ্যাটি N হয়, আমরা নিম্নলিখিত ক্রিয়াকলাপগুলি সম্পাদন করতে পারি৷
- y =N ^ (N>> 1)
- y =y ^ (y>> 2)
- y =y ^ (y>> 4)
- y =y ^ (y>> 8)
- y =y ^ (y>> 16)
এই সমস্ত ক্রিয়াকলাপ সম্পন্ন হলে, y-এর ডানদিকের বিটটি সংখ্যার সমতাকে উপস্থাপন করবে। বিটটি 1 হলে, সমতাটি বিজোড় হবে এবং বিটটি 0 হলে, সমতাটি জোড় হবে৷
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
bool calc_parity(int N) {
int y;
y= N ^ (N >> 1);
y = y ^ (y >> 2);
y = y ^ (y >> 4);
y = y ^ (y >> 8);
y = y ^ (y >> 16);
//checking the rightmost bit
if (y & 1)
return 1;
return 0;
}
int main() {
int n=1345;
int result = calc_parity(n);
if(result==1)
cout << "Odd Parity" << endl;
else
cout << "Even Parity" << endl;
return 0;
} আউটপুট
Even Parity