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

Chương trình Python kiểm tra ánh xạ domain-range có phải hàm số không


Cho hai list x (domain) và y (range) cùng kích thước. Kiểm tra xem ánh xạ x → y có phải là hàm số không (mỗi x chỉ ánh xạ tới đúng 1 y).

Ví dụ: x = [1,3,2,6,5], y = [1,9,4,36,25] → True (mỗi x ánh xạ đến bình phương của nó).

Thuật toán

  • Duyệt qua các cặp (x[i], y[i]).
  • Dùng dictionary mp lưu ánh xạ đã thấy.
  • Nếu x[i] đã có trong mp nhưng mp[x[i]] != y[i] → không phải hàm.
  • Nếu duyệt hết không vi phạm → là hàm.

Ví dụ mã nguồn

def solve(x, y):
    mp = {}
    for i in range(len(x)):
        a, b = x[i], y[i]
        if a not in mp:
            mp[a] = b
        else:
            return False
    return True

x = [1,3,2,6,5]
y = [1,9,4,36,25]
print(solve(x, y))  # True

Đầu vào / Đầu ra

Input:  [1,3,2,6,5], [1,9,4,36,25]
Output: True