ধরুন আমাদের x এবং y দুটি সংখ্যা আছে। এই দুটি সংখ্যা এক-বিট অবস্থানে আলাদা কিনা তা আমাদের পরীক্ষা করতে হবে।
সুতরাং, যদি ইনপুটটি x =25 y =17 এর মত হয়, তাহলে আউটপুটটি True হবে কারণ বাইনারিতে x =11001 এবং y =10001। শুধুমাত্র এক-বিট অবস্থান ভিন্ন।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- z =x XOR y
- যদি z-এ সেট বিটের সংখ্যা 1 হয়, তাহলে
- সত্য ফেরান
- মিথ্যে ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ কোড
def bit_count(n): count = 0 while n: count += n & 1 n >>= 1 return count def solve(x, y): return bit_count(x ^ y) == 1 x = 25 y = 17 print(solve(x, y))
ইনপুট
25,17
আউটপুট
True