def bao_toan(truoc, sau): return sum(truoc.values()) == sum(sau.values()) def dung_nguoi_nhan(truoc, sau, gui, nhan, tien): if truoc.keys() != sau.keys(): return False mong_doi = {ma: 0 for ma in truoc} mong_doi[gui] -= tien mong_doi[nhan] += tien return all(sau[ma] - truoc[ma] == delta for ma, delta in mong_doi.items()) truoc = {"A": 20, "B": 4, "C": 1} dung = {"A": 13, "B": 11, "C": 1} sai = {"A": 13, "B": 4, "C": 8} assert bao_toan(truoc, dung) and bao_toan(truoc, sai) assert dung_nguoi_nhan(truoc, dung, "A", "B", 7) assert not dung_nguoi_nhan(truoc, sai, "A", "B", 7) print("Tổng giống nhau, oracle từng tài khoản phát hiện bản ghi sai.")