Tối giản số lần chuyển khoản khi chia nợ trong nhóm
Tóm tắt: Thay vì mỗi người trả riêng cho từng người đã ứng tiền, hãy tính số dư ròng của từng người rồi ghép người nợ với người được nhận. Với n người còn số dư khác 0, luôn tồn tại cách trả bằng tối đa n − 1 giao dịch; ví dụ năm người giảm từ 6 xuống 4 lần chuyển.
Bước 1: tính số dư ròng của mỗi người
Số dư ròng = tổng số tiền người đó đã ứng trả − phần mình phải chịu. Số dư dương nghĩa là được nhận lại tiền, số dư âm nghĩa là phải trả. Tổng số dư của cả nhóm luôn bằng 0.
Bước 2: ghép người phải trả với người được nhận
Ví dụ năm người sau một chuyến đi (đơn vị đồng):
| Người | Số dư ròng | Vai trò |
|---|---|---|
| A | +500.000đ | Được nhận |
| B | +100.000đ | Được nhận |
| C | −200.000đ | Phải trả |
| D | −250.000đ | Phải trả |
| E | −150.000đ | Phải trả |
Nếu mỗi người nợ trả riêng cho từng người ứng tiền, C, D, E mỗi người chuyển cho cả A lẫn B: 3 × 2 = 6 lần chuyển khoản. Khi ghép gọn, chỉ cần 4 lần:
- C chuyển cho A 200.000đ.
- D chuyển cho A 250.000đ.
- E chuyển cho A 50.000đ.
- E chuyển cho B 100.000đ.
A nhận đủ 500.000đ (200.000 + 250.000 + 50.000), B nhận đủ 100.000đ, E trả đúng 150.000đ. Số tiền ròng của từng người không đổi; chỉ cách chuyển được rút gọn.
Vì sao không thể ít hơn 4 lần
Số giao dịch tối thiểu bằng số người còn số dư khác 0, trừ đi số nhóm con có tổng số dư bằng 0 có thể tách riêng. Trong ví dụ trên không có nhóm con nào cộng lại bằng 0 (ngoài cả nhóm), nên cần tối thiểu 5 − 1 = 4 lần chuyển.
Khi nhóm lớn
Tìm cách chuyển ít giao dịch nhất là bài toán khó khi nhóm đông (không có công thức nhanh cho mọi trường hợp). Bill-Snap tính chính xác khi nhóm có tới 18 người còn số dư; nhóm lớn hơn dùng cách gần tối ưu, vẫn bảo đảm số tiền ròng của mỗi người đúng từng đồng.
Tối giản nợ trong Bill-Snap
- Tối giản công nợ được bật mặc định; ứng dụng lập kế hoạch chuyển khoản cho cả nhóm.
- Có tuỳ chọn "chỉ nợ trực tiếp" nếu nhóm muốn trả đúng người đã ứng tiền cho mình.
- Mỗi khoản trong kế hoạch có mã VietQR kèm sẵn số tiền; người trả báo đã chuyển, người nhận xác nhận đã nhận để gạch nợ.
Bước chuẩn bị trước đó, tức ghi chi tiêu và chia tiền, xem ở bài chia tiền đi du lịch nhóm.
Câu hỏi thường gặp
Tối giản nợ có làm thay đổi số tiền mỗi người phải chịu không?
Không. Số dư ròng của mỗi người giữ nguyên; chỉ thay đổi người nhận tiền để tổng số lần chuyển khoản ít nhất.
Có thể tắt tối giản nợ không?
Có. Bill-Snap bật tối giản mặc định nhưng cho chọn "chỉ nợ trực tiếp", khi đó mỗi người trả đúng người đã ứng tiền cho khoản của mình.
Vì sao tôi phải trả cho người mà tôi không trực tiếp nợ?
Vì tối giản ghép theo số dư ròng chứ không theo từng khoản lẻ. Tổng bạn trả vẫn đúng bằng số dư của bạn, chỉ khác người nhận so với khi tính từng cặp.
Nhóm bao nhiêu người thì tối giản nợ có ích?
Từ khoảng 4–5 người trở lên đã thấy rõ, vì số cặp nợ chéo nhau tăng nhanh. Nhóm 2–3 người thường chỉ cần một đến hai lần chuyển.