ধরুন আমাদের x এবং y দুটি সংখ্যা আছে। এই দুটি সংখ্যার একটি অন্যটির 1 এর পরিপূরক কিনা তা আমাদের পরীক্ষা করতে হবে। আমরা সবাই জানি বাইনারি সংখ্যার 1 এর পরিপূরকটি 0 থেকে 1 বা 1 থেকে 0 পর্যন্ত সমস্ত বিট ফ্লিপ করছে।
সুতরাং, যদি ইনপুটটি x =9, y =6 এর মত হয়, তাহলে আউটপুটটি True হবে কারণ বাইনারি উপস্থাপনাগুলি হল x =1001 এবং y =0110 যা একে অপরের পরিপূরক।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- z =x XOR y
- যখন z-এ সমস্ত বিট সেট করা থাকে তখন সত্যে ফিরে আসে, অন্যথায় মিথ্যা
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def all_one(n): if n == 0: return False; if ((n + 1) & n) == 0: return True return False def solve(x, y): return all_one(x ^ y) x = 9 y = 6 print(solve(x, y))
ইনপুট
9, 6
আউটপুট
True