একটি সংখ্যার প্যারিটি সেটির বাইনারি সমতুল্যে উপস্থিত ১-র সংখ্যা উপর ভিত্তি করে। যখন উপস্থিত ১-র গণনা বিজোড়, তবে এটি অড্ড প্যারিটি রিটার্ন করে, জোড় সংখ্যক ১ের জন্য ইভেন প্যারিটি রিটার্ন করে।
যেহেতু কম্পিউটার মেমোরিতে সংখ্যাগুলো বাইনারি সংখ্যা হিসেবে সংরক্ষিত থাকে, তাই আমরা সহজে সংখ্যাগুলো শিফট করতে পারি। এই কেসে, বিটগুলো শিফট করে, আমরা প্রদত্ত সংখ্যার বাইনারি সমতুল্যে উপস্থিত ১-র সংখ্যা গণনা করব।
ইনপুট এবং আউটপুট
ইনপুট: একটি সংখ্যা: ৫ বাইনারি সমতুল্য হল (101) আউটপুট: ৫-এর প্যারিটি অড্ড।
অ্যালগরিদম
finParity(n)
ইনপুট: সংখ্যা n।
আউটপুট: সংখ্যাটির ইভেন প্যারিটি আছে কিনা অড্ড প্যারিটি আছে তা চেক করুন।
শুরু
count := 0
temp := n
যতক্ষণ temp >= 2, করুন
যদি temp-এর LSb ১ থাকে, তবে
count := count + 1
temp := ১ বিট ডান শিফট করুন
শেষ
যদি count বিজোড় সংখ্যা হয়, তবে
এটি অড্ড প্যারিটি বলে প্রদর্শন করুন
অন্যথায়
ইভেন প্যারিটি প্রদর্শন করুন
শেষউদাহরণ
#include <iostream> using namespace std; bool findParity(int n) { int count = 0; int temp = n; while (temp>=2) { if(temp & 1) //যদি LSb ১ হয়, কাউন্ট বাড়ান count++; temp = temp >> 1; //সংখ্যা ১ বিট ডান শিফট করুন } return (count % 2)?true:false; } int main() { int n; cout << "Enter a number: "; cin >>n; cout << "Parity of " << n << " is " << (findParity(n)?"Odd":"Even"); }আউটপুট
Enter a number: 5 Parity of 5 is Odd