Trò Chơi chia nước

Thử thách logic với bài toán chia nước kinh điển từ Die Hard

🌊 Số bước đã thực hiện: 0
⭐ Số bước tối thiểu: 7
🎯 Mục tiêu: 4L

🌊 Hướng dẫn: Click "Đổ đầy" để lấy nước từ vòi, "Làm rỗng" để đổ bỏ nước, hoặc click can để đổ nước giữa các can

📏 Tỷ lệ: Chiều cao can tỷ lệ với dung tích - can càng lớn càng cao

Cấp 1: Die Hard Classic

Đong chính xác 4 lít nước từ can 3L và 5L

🎉 Xuất sắc! Bạn đã giải được câu đố! 🎉

🎬 Câu chuyện từ phim "Die Hard with a Vengeance" (1995)

Bối cảnh trong phim

Trong bộ phim kinh điển "Die Hard with a Vengeance" (1995), John McClane (Bruce Willis) và Zeus Carver (Samuel L. Jackson) phải đối mặt với một quả bom được đặt tại Công viên Trung tâm New York. Kẻ khủng bố Simon Gruber đưa ra một câu đố tưởng chừng như bất khả thi:

"Trên đài phun nước, có hai chiếc can: một can 5 gallon và một can 3 gallon. Hãy đong chính xác 4 gallon nước và đặt lên cân để dừng bộ đếm thời gian. Bạn phải chính xác; chênh lệch dù chỉ một ounce cũng sẽ làm bom nổ."

- Simon Gruber

Với chỉ 5 phút để giải quyết, McClane và Zeus phải sử dụng trí thông minh và logic để tìm ra cách đong chính xác 4 gallon từ hai chiếc can có dung tích 3 và 5 gallon.

Hướng dẫn chơi game

  • Mục tiêu: Đong chính xác số lít nước theo yêu cầu của từng cấp độ
  • Đổ đầy: Click nút "💧 Đổ đầy" để lấy nước từ vòi (nguồn vô hạn)
  • Làm rỗng: Click nút "🚰 Làm rỗng" để đổ bỏ toàn bộ nước trong can
  • Chuyển nước: Click vào can có nước → chọn can đích để chuyển nước
  • Theo dõi: Số lít hiện tại hiển thị ở trên mỗi can (ví dụ: 2/5L)
  • Thắng: Khi có can chứa đúng số lít mục tiêu, can sẽ sáng màu xanh lá

Các cấp độ thử thách

  • Cấp 1 - Die Hard Classic: Can 3L, 5L → Đong 4L (7 bước tối thiểu)
  • Cấp 2 - Tam Giác Nước: Can 8L, 5L, 3L → Đong 4L (5 bước)
  • Cấp 3 - Thử Thách Lớn: Can 12L, 8L, 5L → Đong 6L (6 bước)
  • Cấp 4 - Cao Thủ: Can 10L, 7L, 3L → Đong 5L (8 bước)
  • Cấp 5 - Siêu Việt: Can 15L, 12L, 8L, 5L → Đong 7L (10 bước)

Chiến thuật và mẹo

  • Tư duy từng bước: Lập kế hoạch 2-3 bước tiếp theo trước khi thực hiện
  • Sử dụng can trung gian: Can nhỏ thường dùng để tạo ra lượng nước "dư"
  • Nguyên tắc hiệu: Luôn tận dụng hiệu số giữa các can
  • Quan sát tỷ lệ: Chiều cao can phản ánh dung tích thực tế
  • Thực hành: Bắt đầu từ cấp dễ để hiểu nguyên tắc

Tính năng đặc biệt

  • Lời giải tự động: Xem máy tính giải theo thuật toán tối ưu
  • Lưu/Tải game: Lưu trạng thái để tiếp tục chơi sau
  • Đếm bước: Theo dõi hiệu quả so với số bước tối thiểu
  • Animation thực tế: Hiệu ứng đổ nước sống động
  • Responsive: Chơi tốt trên mọi thiết bị

Toán học đằng sau bài toán

🔢 Lý thuyết số học

Định lý Bézout: Bài toán có lời giải khi và chỉ khi số lít cần đong là bội số của ước chung lớn nhất (GCD) của các dung tích can.

Ví dụ: Can 3L và 5L
GCD(3, 5) = 1
→ Có thể đong mọi số nguyên từ 1L đến 8L

Đây là ứng dụng thực tế của thuật toán Euclid mở rộng trong lý thuyết số.

🎯 Tối ưu hóa

Bài toán tìm đường đi ngắn nhất: Mỗi trạng thái (a, b, c...) là một đỉnh trong đồ thị. Mục tiêu là tìm đường đi từ (0, 0, 0...) đến trạng thái chứa số lít mục tiêu.

Thuật toán: BFS (Breadth-First Search)
Độ phức tạp: O(∏capacity_i)
Không gian trạng thái: Tích các dung tích can

Đây là bài toán graph traversal cổ điển trong khoa học máy tính.

📊 Phân tích tổ hợp

Số bước tối thiểu: Phụ thuộc vào cấu trúc số học của dung tích các can và mục tiêu.

Die Hard Classic: 3L, 5L → 4L
Công thức: 4 = 5×2 - 3×2
→ 7 bước tối thiểu

Liên quan đến phương trình Diophantine và lý thuyết nhóm trong đại số trừu tượng.

🧠 Ứng dụng thực tế
  • Hóa học: Pha chế dung dịch với tỷ lệ chính xác
  • Công nghiệp: Đo lường và phân phối chất lỏng
  • Lập trình: Thuật toán tìm kiếm và tối ưu hóa
  • Giáo dục: Dạy tư duy logic và giải quyết vấn đề
  • Game design: Tạo puzzle thú vị và thách thức

Lịch sử và văn hóa

Bài toán đo lường xuất hiện từ thời cổ đại, được ghi nhận trong nhiều nền văn minh:

  • Ai Cập cổ đại: Sử dụng trong xây dựng kim tự tháp
  • Hy Lạp cổ đại: Xuất hiện trong các tác phẩm toán học
  • Trung Quốc cổ: "Cửu chương toán thuật" có bài toán tương tự
  • Thời hiện đại: Trở thành bài toán kinh điển trong khoa học máy tính

Phim "Die Hard with a Vengeance" đã làm cho bài toán này trở nên nổi tiếng toàn cầu, khiến nó được biết đến với tên gọi "Die Hard Problem" trong cộng đồng toán học và lập trình.