Vấn đề của tôi là:
Có một câu đố của Raymond Smullyan có tác dụng như thế này: Bạn đang ở trong một căn phòng có nhiều cửa. Đằng sau một số cánh cửa đó, có những người phụ nữ; Đằng sau những người khác, có những con hổ. Mục tiêu của bạn là chọn một trong những cánh cửa phù hợp (những cánh cửa với phụ nữ). Trên mỗi cánh cửa, có một dấu hiệu cho biết một cái gì đó như Có một phụ nữ đằng sau cánh cửa này hoặc Có một con sư tử đằng sau cánh cửa II và VI , v.v. Bây giờ, bạn cũng có một số thông tin bổ sung như Chỉ một trong những dấu hiệu cho biết sự thật hoặc Dấu hiệu trên một cánh cửa chỉ đúng nếu có một phụ nữ đằng sau cánh cửa đó và cứ thế. Ví dụ, câu đố đầu tiên diễn ra như sau:
Có hai cửa với một dấu hiệu mỗi. Một trong những dấu hiệu là đúng, một dấu hiệu khác là sai:
--------------------- --------------------- | DOOR I | | DOOR II | | There's a lady in | | In one of those | | this room and a | | rooms, there's a | | a tiger in the | | lady, in the other | | other one | | one there's a tiger | --------------------- ---------------------
Đằng sau cánh cửa nào là một quý cô?
Bây giờ, đi đến chủ đề của câu hỏi này: Tôi đang tìm cách có thể để tự động tạo ra các câu đố như vậy. Mục tiêu (ở xa) là xây dựng một thuật toán yêu cầu, như các tham số, số lượng cửa (và có thể là độ khó của câu đố kết quả) và tạo ra các văn bản tương ứng cho các cửa.
Những gì tôi đã cố gắng cho đến nay:
Không nhiều lắm, vì tôi không thực sự biết bắt đầu từ đâu. Thật dễ dàng để tạo một mẫu cho văn bản trên các dấu hiệu và cũng dễ dàng gán ngẫu nhiên các tuyên bố đúng và sai cho các dấu hiệu đó, tương ứng với quy tắc đúng-sai mà bạn sử dụng (ví dụ: Chỉ một dấu hiệu cho biết sự thật ). Nhưng đó là phần khó hiểu: Làm thế nào để tạo ra một câu đố có thể giải được và có một giải pháp độc đáo ? Ý tưởng đầu tiên của tôi là tạo ra một câu đố ngẫu nhiên và sử dụng quay lui để tìm kiếm giải pháp. Nhưng theo cách đó, có thể mất rất nhiều thời gian cho đến khi thuật toán cuối cùng đã tìm thấy một bộ dấu hiệu hoạt động. Ngoài ra, theo cách đó bạn không thể dễ dàng xác định mức độ khó của một câu đố nhất định.
Vì vậy, tóm tắt nó: Bạn có bất kỳ ý tưởng, bất kỳ liên kết hữu ích, vv? Bất kỳ trợ giúp đều được đánh giá cao, tôi không mong đợi bất cứ ai đăng một giải pháp hoàn hảo và đầy đủ cho vấn đề của tôi.
(Lưu ý: Ban đầu tôi đã hỏi câu hỏi sau đây về stackoverflow nhưng được cho biết rằng tôi sẽ có nhiều khả năng nhận được câu trả lời ở đây!)