Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra hai số khác nhau đúng một bit trong Python

Cho hai số x, y. Kiểm tra xem chúng khác nhau ở đúng một vị trí bit (Hamming distance = 1).

Ví dụ: x=25 (11001), y=17 (10001) → True (chỉ bit thứ 3 khác).

Thuật toán

  • z = x XOR y (các bit khác nhau sẽ thành 1).
  • Đếm số bit 1 trong z (popcount).
  • Nếu bằng 1 → True, else False.

Ví dụ code

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))

Đầu vào

25, 17

Đầu ra

True