কম্পিউটার টিউটোরিয়াল

পাইথনে দুটি সংখ্যার নির্দিষ্ট বিট রেঞ্জ একে অপরের কমপ্লিমেন্ট কিনা

দুটি সংখ্যা x, y এবং রেঞ্জ left, right দেওয়া আছে। রেঞ্জের বিটগুলো একে অপরের কমপ্লিমেন্ট (বিট ফ্লিপ) কিনা যাচাই করতে হবে। LSB = ১ নম্বর পজিশন।

উদাহরণ

ইনপুট: x = 41, y = 54, left = 2, right = 5

আউটপুট: True

ব্যাখ্যা: ৪১ = 101001, ৫৪ = 110110। ২-৫ পজিশনের বিট: 1001 ও 0110 (কমপ্লিমেন্ট)।

অ্যালগরিদম

  1. temp = x ^ y (XOR দিয়ে বিট পার্থক্য বের করুন)।
  2. রেঞ্জের সব বিট ১ কিনা চেক করুন।

উদাহরণ কোড

def are_all_setbits_in_range(n, left, right):
    val = ((1 << right) - 1) ^ ((1 << (left - 1)) - 1)
    new_value = n & val
    return val == new_value

def solve(x, y, left, right):
    temp = x ^ y
    return are_all_setbits_in_range(temp, left, right)

x = 41
y = 54
left = 2
right = 5
print(solve(x, y, left, right))  # Output: True

ইনপুট

41, 54, 2, 5

আউটপুট

True
  1. পাইথনে দুটি বাইনারি ট্রির সকল লেভেল যুগ्मানুকরণ (anagram) কিনা যাচাই

  2. পাইথনে দুটি বাইনারি ট্রির লিফ সিকোয়েন্স মিল কিনা যাচাই

  3. পাইথনে একটি ট্রি অন্য ট্রির সাবট্রি কিনা যাচাই করা

  4. পাইথনে দুটি সংখ্যা (m,n) অ্যামিকেবল (Amicable) কিনা যাচাই করার প্রোগ্রাম