Một câu đố hay thường có ba phẩm chất: luật đơn giản, có đúng một lời giải (hoặc đúng một lời giải ngắn nhất), và có một "khoảnh khắc à há" — chỗ người giải phải nghĩ khác đi mới vượt qua được. Để đảm bảo có đúng một lời giải, người đặt câu đố ngày nay thường dùng máy tính kiểm tra bằng cách duyệt hết mọi khả năng. Một kỹ thuật phổ biến là sinh màn đố ngược từ đích rồi lọc giữ lại những màn đạt chuẩn. Đặt câu đố là cách học rất sâu: muốn làm khó người khác, phải hiểu rõ chỗ khó nằm ở đâu.
Vì sao "đúng một lời giải" quan trọng
- Công bằng: người giải biết chắc mình đúng khi tìm ra đáp án, không phải đoán ý người ra đề.
- Suy luận được: nếu chỉ có một lời giải, mọi bước đều có thể lập luận ra từ các bước trước, không cần thử may rủi. Đây là nguyên tắc của những câu đố logic tốt như sudoku.
- Cảm giác chinh phục: lời giải duy nhất cho người giải niềm vui "tìm ra" chứ không phải "trúng".
Với câu đố tìm đường như câu đố trượt trên băng, đòi hỏi tương ứng là: có đúng một đường đi ngắn nhất. Nếu có nhiều đường ngắn nhất, người giải tìm được một đường cũng không chắc đó là "đường của người ra đề", và màn đố mất đi vẻ sắc nét.
Sudoku: ví dụ về tính duy nhất
Một ô sudoku chuẩn 9 × 9 phải có đúng một lời giải. Câu hỏi "cần ít nhất bao nhiêu số gợi ý ban đầu để có đúng một lời giải?" từng là một bài toán mở. Năm 2012, nhóm của Gary McGuire (Đại học College Dublin, Ireland) công bố kết quả từ một cuộc tìm kiếm bằng máy tính kéo dài khoảng một năm: không có sudoku nào với 16 số gợi ý có đúng một lời giải; con số tối thiểu là 17. Đây là ví dụ đẹp cho thấy kiểm tra tính duy nhất có thể khó tới mức nào.
Bốn bước đặt một câu đố tìm đường
1. Chọn luật và "ý tưởng chính"
Mỗi màn đố hay thường xoay quanh một ý tưởng: "phải dùng vật A làm điểm chặn cho vật B", "phải đi xa đích trước rồi mới vòng lại", "phải hy sinh một vị trí tốt". Chọn ý tưởng trước, xây màn sau.
2. Xây màn đố
Có hai cách:
| Cách | Làm thế nào | Ưu | Nhược |
|---|---|---|---|
| Thiết kế tay | Đặt chướng ngại theo ý tưởng, thử giải, chỉnh sửa | Màn có "hồn", có chủ đích | Tốn thời gian, dễ có lời giải tắt ngoài ý muốn |
| Sinh ngược từ đích | Bắt đầu từ trạng thái đích, thực hiện các bước ngược ngẫu nhiên, ghi lại trạng thái cuối làm điểm xuất phát | Chắc chắn có lời giải; tạo được nhiều màn nhanh | Nhiều màn nhạt, phải lọc |
Sinh ngược gặp một khó khăn với câu đố trượt: bước "ngược" của một lần trượt không duy nhất (vật dừng ở ô X có thể đến từ nhiều ô trên cùng đường thẳng). Người làm phải chọn một trong số đó và kiểm tra lại bằng bước xuôi.
3. Kiểm tra bằng máy
Chạy thuật toán tìm theo chiều rộng (bài tìm đường ngắn nhất) để:
- Xác định số bước ít nhất.
- Đếm có bao nhiêu đường đi khác nhau đạt số bước đó.
- Kiểm tra không có lối tắt ngoài ý muốn.
Chỉ giữ những màn có đúng một đường ngắn nhất. Nếu có nhiều đường, thêm hoặc dời một chướng ngại để chặn bớt, rồi kiểm tra lại.
4. Thử với người thật
Máy tính biết màn đố có lời giải, nhưng không biết nó hay hay nhạt. Đưa cho vài người thử, quan sát họ bị kẹt ở đâu, có "à há" không, có bỏ cuộc vì quá khó không. Một màn hay thường khiến người giải mất vài phút suy nghĩ, rồi khi tìm ra thì thấy "lẽ ra mình phải thấy sớm hơn".
Những dấu hiệu của màn đố nhạt
- Lời giải hiển nhiên: bước đầu tiên ai cũng nghĩ tới là đúng, và cứ thế đi thẳng tới đích.
- Thử sai may rủi: không có cách suy luận, chỉ có thử hết mọi hướng.
- Chướng ngại thừa: những hòn đá không bao giờ dùng tới, chỉ làm rối mắt. Màn đố tốt thường "tối giản": bỏ đi bất kỳ thứ gì cũng làm thay đổi lời giải.
- Dài mà không khó: nhiều bước nhưng mỗi bước đều dễ đoán.
Một nguyên tắc nhiều nhà thiết kế câu đố chia sẻ: độ khó đến từ một ý tưởng bất ngờ, không đến từ độ dài.
Đường cong độ khó
Khi thiết kế cả một chuỗi màn đố, người ta sắp xếp chúng theo "đường cong học tập":
- Màn đầu giới thiệu một luật mới trong tình huống đơn giản nhất, gần như không thể sai.
- Vài màn tiếp theo cho người giải luyện luật đó.
- Một màn kết hợp luật mới với luật cũ.
- Một màn "đánh đố" dùng luật theo cách không ai nghĩ tới.
- Rồi giới thiệu luật mới tiếp theo.
Chuỗi màn như vậy dạy người giải mà không cần lời giải thích dài — chính câu đố là người thầy.
Góc nhìn hôm nay: đặt câu đố cho người thân
- Vẽ một lưới 6 × 6 trên giấy kẻ ô, chọn luật trượt trên băng.
- Đặt ô đích và một hòn đá chặn ngay sau đích.
- Từ đích, "đi ngược" ba, bốn bước: mỗi bước chọn một ô xuất phát hợp lệ, thêm đá chặn nếu cần để vật dừng được ở đó.
- Đặt vật ở ô cuối cùng tìm được. Đó là màn đố của bạn.
- Tự giải lại xuôi từ đầu, kiểm tra không có đường ngắn hơn. Đếm thử có bao nhiêu đường ngắn nhất bằng cách đánh số lan sóng.
- Đưa người thân giải, quan sát họ kẹt ở đâu.
Trẻ đặt câu đố cho bố mẹ giải là một cách học rất hiệu quả: để ra được đề khó, trẻ phải hiểu luật sâu hơn người giải.
Câu hỏi thường gặp
Thế nào là một câu đố hay?
Câu đố hay có luật đơn giản, có đúng một lời giải hoặc đúng một lời giải ngắn nhất, và có một khoảnh khắc bất ngờ buộc người giải nghĩ khác đi. Độ khó đến từ ý tưởng chứ không đến từ độ dài hay sự rối rắm.
Vì sao câu đố nên có đúng một lời giải?
Vì như vậy người giải biết chắc mình đúng khi tìm ra, mọi bước đều có thể suy luận được thay vì đoán may rủi, và niềm vui tìm ra trọn vẹn hơn. Sudoku chuẩn luôn có đúng một lời giải.
Sudoku cần ít nhất bao nhiêu số gợi ý?
Ít nhất 17 số. Năm 2012, nhóm của Gary McGuire ở Ireland dùng máy tính tìm kiếm khoảng một năm và chứng minh không có sudoku 16 số gợi ý nào có đúng một lời giải.
Sinh màn đố ngược từ đích là gì?
Là bắt đầu từ trạng thái đích, thực hiện các bước ngược để tạo ra trạng thái xuất phát. Màn đố tạo ra chắc chắn có lời giải; sau đó dùng máy tính kiểm tra số bước ít nhất và chỉ giữ những màn có đúng một đường ngắn nhất.
Làm sao kiểm tra câu đố có đúng một lời giải ngắn nhất?
Dùng thuật toán tìm theo chiều rộng để duyệt mọi trạng thái, tìm số bước ít nhất và đếm có bao nhiêu đường đạt số bước đó. Với câu đố nhỏ trên giấy, có thể làm bằng tay bằng cách đánh số lan sóng từ điểm xuất phát.