Công cụ này làm gì
Máy Tính Tiền Thối giúp bạn xác định số tiền cần trả lại cho khách trong một giao dịch tiền mặt, sau đó chia số tiền đó thành số tờ tiền và đồng xu ít nhất có thể trên thực tế. Đây là một công cụ tiện ích đa năng, không gắn với riêng quốc gia nào, cho phép bạn chọn từ các loại tiền tệ phổ biến trên thế giới như Đô la Mỹ (USD, mặc định), Euro (EUR), Bảng Anh (GBP), Đô la Canada (CAD), Đô la Úc (AUD), Peso Mexico (MXN), Peso Philippines (PHP), Đô la New Zealand (NZD) và Real Brazil (BRL). Lưu ý rằng công cụ hoạt động với mệnh giá tiền giấy và tiền xu của các loại ngoại tệ này — không áp dụng cho Việt Nam Đồng (VND).
Cách sử dụng
Hãy chọn loại tiền tệ và chế độ tính. Ở chế độ "Tính tiền thối", bạn nhập giá mua và số tiền khách đưa; công cụ sẽ tính tiền thối bằng cách lấy số tiền khách đưa trừ đi giá mua. Ở chế độ "Nhập trực tiếp số tiền thối", bạn tự nhập số tiền cần thối và bỏ qua bước tính toán giá mua. Kết quả hiển thị số tiền cần thối kèm một bảng liệt kê số lượng từng loại tờ tiền và đồng xu cần đưa lại, sắp xếp từ mệnh giá lớn nhất, cùng tổng số tờ/đồng.
Công thức và thuật toán
Trước tiên, tiền thối được tính:
$$\text{Tiền thối} = \text{Tiền khách đưa} - \text{Giá mua}$$(hoặc số tiền bạn nhập trực tiếp). Để tránh sai số dấu phẩy động, số tiền được quy đổi sang đơn vị nhỏ nhất nguyên (xu) bằng cách nhân với 100 rồi làm tròn. Sau đó, một thuật toán tham lam (greedy) sẽ lần lượt duyệt qua từng mệnh giá từ lớn đến nhỏ, lấy \(n = \left\lfloor \frac{r}{d} \right\rfloor\) (phần nguyên của số dư chia mệnh giá) cho từng loại rồi trừ khỏi số dư còn lại:
$$n_d = \left\lfloor \frac{r}{d} \right\rfloor,\quad r \leftarrow r - n_d\,d$$Với các hệ thống tiền xu "chuẩn tắc" như USD, EUR và GBP, thuật toán tham lam cho ra đúng số lượng tờ/đồng tối thiểu thật sự.
Ví dụ minh họa
USD, giá mua $7.50, khách đưa $20.00. Tiền thối = \(\$20.00 - \$7.50 = \$12.50 = 1250\) xu. Thuật toán tham lam: một tờ $10 (còn 250 xu), một tờ $2 (còn 50 xu), một đồng 50¢ (còn 0). Kết quả: \(1 \times \$10\), \(1 \times \$2\), \(1 \times 50\)¢ — tổng cộng 3 tờ/đồng.
Câu hỏi thường gặp
Vì sao cần quy đổi về đơn vị xu? Tính toán bằng đơn vị nhỏ nhất nguyên giúp tránh các lỗi như 12.499999 sinh ra dư một xu lẻ.
Nếu tôi tắt một mệnh giá thì sao? Thuật toán tham lam vẫn chạy trên các mệnh giá còn lại; nếu không thể về 0, nó sẽ báo phần dư còn thừa. Hãy giữ lại đồng xu nhỏ nhất để đảm bảo thối tiền chính xác.
Thuật toán tham lam có luôn tối ưu không? Với các hệ thống tiền xu chuẩn tắc của các quốc gia, thì có. Với các bộ mệnh giá bất thường hoặc đã bị tắt bớt, nó trả về kết quả hợp lệ nhưng không phải lúc nào cũng là phương án tối thiểu tuyệt đối.