Đã có một câu hỏi về việc mô phỏng vấn đề Monty Hall . Cái này thì khác. Người dùng sẽ chơi Bài toán Monty Hall. Chương trình của bạn sẽ đóng vai trò của chủ nhà. Montybot, nếu bạn thích.
Dưới đây là các bước:
- Chọn (ngẫu nhiên) trong số ba cửa ẩn giải thưởng.
- Xuất ra một màn hình hiển thị của ba cửa. Một đơn giản
ABCsẽ làm. Hoặc ba hình vuông. Hay bất cứ cái gì. - Nhận đầu vào chọn một trong các cửa. Đây có thể là một cú click chuột vào cánh cửa đã chọn, hoặc một chữ cái đầu vào (
B) hoặc bất cứ thứ gì. - Mở một cánh cửa khác. Bạn không mở cánh cửa đã chọn. Bạn không mở cửa ẩn giải thưởng chính. Điều đó có nghĩa là bạn không có lựa chọn, hoặc có thể có nghĩa là bạn có hai lựa chọn. Nếu bạn có hai lựa chọn, hãy chọn một cách ngẫu nhiên. Trực quan chỉ ra rằng cánh cửa đã được mở và không có giải thưởng nào được giấu đằng sau nó. Đối với đầu vào / đầu ra dựa trên văn bản chương trình, điều này có thể đơn giản như xuất ra
AB0, để cho thấy rằng cánh cửaCđã được mở. Hãy thoải mái để sáng tạo hơn. Nếu bạn đang làm một chương trình GUI, sự lựa chọn hiển thị của bạn là tùy thuộc vào bạn. - Chấp nhận đầu vào từ người dùng. Người dùng có thể nhập
stickhoặcswitch(hoặc, đối với chương trình GUI, nhấp vào nút hoặc sử dụng đầu vào được chọn hoặc bất cứ thứ gì). Nếu người dùng nhập bất cứ thứ gì khác ngoàistickhoặcswitch, việc triển khai không được xác định. Làm bất cứ điều gì bạn muốn. - Xuất văn bản
You won!hoặcYou lost. - Chấm dứt progam.
Quy tắc:
- Khi bạn phải chọn một cái gì đó một cách ngẫu nhiên , đừng lo lắng về tính ngẫu nhiên của tiền điện tử. Bất kỳ
rand()chức năng sẽ làm. - Chương trình không được gian lận. Giải thưởng phải được đưa ra trước khi trò chơi bắt đầu. Điều đó có nghĩa là các bước phải được thực hiện theo thứ tự được đưa ra: Đầu tiên hãy chọn một cánh cửa phía sau để ẩn giải thưởng của bạn, sau đó yêu cầu người chơi chọn. Lựa chọn mở cửa ở bước 4 phải xảy ra ở bước 4: không được chọn trước.
- Đầu ra ở bước 6 phải trung thực.
- Đây là mã golf. Mã ngắn nhất sẽ thắng.