มีคำถามเกี่ยวกับการจำลองปัญหา Monty Hallอยู่แล้ว อันนี้ต่างออกไป ผู้ใช้จะเล่นปัญหามอนตี้ฮอลล์ โปรแกรมของคุณจะเล่นบทบาทของโฮสต์ Montybot ถ้าคุณชอบ
นี่คือขั้นตอน:
- เลือก (สุ่ม) ประตูใดในสามประตูที่ซ่อนรางวัล
- แสดงผลด้วยภาพสามประตู
ABCจะทำอะไรง่าย ๆ หรือสามสี่เหลี่ยม หรืออะไรก็ตาม - รับอินพุตเลือกหนึ่งในประตู นี่อาจเป็นการคลิกเมาส์ที่ประตูที่เลือกหรือป้อนตัวอักษรเดียว (
B) หรืออะไรก็ได้ - เปิดประตูอีกบาน คุณไม่ได้เปิดประตูที่เลือก คุณไม่ได้เปิดประตูเพื่อซ่อนรางวัลหลัก นั่นอาจหมายความว่าคุณไม่มีทางเลือกหรืออาจหมายความว่าคุณมีสองทางเลือก หากคุณมีสองทางเลือกให้เลือกแบบสุ่ม แสดงให้เห็นด้วยสายตาว่าประตูถูกเปิดออกและไม่มีรางวัลใดซ่อนอยู่ข้างหลัง สำหรับโปรแกรมอินพุต / เอาท์พุตแบบข้อความอาจเป็นเรื่องง่ายเพียงแค่เอาท์พุท
AB0เพื่อแสดงว่าประตูCถูกเปิดออก รู้สึกอิสระที่จะสร้างสรรค์มากขึ้น หากคุณกำลังทำโปรแกรม GUI ตัวเลือกการแสดงผลของคุณนั้นขึ้นอยู่กับคุณ - ยอมรับอินพุตจากผู้ใช้ ผู้ใช้สามารถป้อนข้อมูล
stickหรือswitch(หรือสำหรับโปรแกรม GUI คลิกที่ปุ่มหรือใช้อินพุตที่เลือกหรืออะไรก็ได้) หากผู้ใช้เข้าสู่สิ่งอื่นนอกเหนือจากstickหรือswitchการใช้งานจะไม่ได้กำหนด ทำสิ่งที่คุณต้องการ. - เอาท์พุทข้อความหรือ
You won!You lost - สิ้นสุด progam
กฎ:
- เมื่อคุณต้องเลือกสุ่มเลือกไม่ต้องกังวลเกี่ยวกับการสุ่มเข้ารหัส
rand()ฟังก์ชั่นใด ๆ ที่จะทำ - โปรแกรมจะต้องไม่โกง รางวัลจะต้องอยู่ในสถานที่ก่อนที่เกมจะเริ่ม กล่าวคือต้องทำตามขั้นตอนตามลำดับที่กำหนดไว้: อันดับแรกเลือกประตูที่จะซ่อนรางวัลของคุณจากนั้นให้ผู้เล่นเลือก ตัวเลือกของประตูที่จะเปิดในขั้นตอนที่ 4 จะต้องเกิดขึ้นในขั้นตอนที่ 4: ไม่ได้เลือกล่วงหน้า
- ผลลัพธ์ในขั้นตอนที่ 6 ต้องซื่อสัตย์
- นี่คือรหัสกอล์ฟ รหัสที่สั้นที่สุดชนะ
ครั้งแรกที่ฉันโพสต์บนเว็บไซต์นี้ แต่ฉันแฝงตัวมากดังนั้นฉันคิดว่าฉันคุ้นเคยกับบรรทัดฐานของคุณ
—
TRiG
บน meta.codegolf.stackexchange.com มีหัวข้อสำหรับเสนอคำถามและให้ผู้คนแก้ไขปัญหาใด ๆ ก่อนที่จะโพสต์อย่างเป็นทางการ ฉันไม่รู้ว่ามีอะไรผิดปกติที่นี่ที่อาจถูกรีดออกมาหรือเปล่า แต่มันอาจเป็นการดีที่คุณจะรู้ในครั้งต่อไป
—
undergroundmonorail
ฉันกำลังดูตัวอย่างว่าผู้ชนะจะเป็นเพียงอีกหนึ่งคำตอบ golfscript ...
—
วิคเตอร์ Stafusa
BTW "การประดิษฐ์" ไม่เป็นไปด้วยดีกับ codegolfing เนื่องจากการประดิษฐ์นั้นใช้เนื้อที่จำนวนหนึ่งไบต์และวัตถุประสงค์ของ codegolfing นั้นตรงกันข้ามกับสิ่งนี้
—
Victor Stafusa
ใช่ @Victor การเป็นนักประดิษฐ์ไม่ใช่ข้อกำหนด ฉันแค่ (ก) ไม่ต้องการ จำกัด สิ่งนี้ในโปรแกรมบรรทัดคำสั่งและ (b) ไม่รู้ว่าโปรแกรมที่ไม่ใช่บรรทัดคำสั่งควรใช้การเลือกผู้ใช้อย่างไร ดังนั้นฉันจึงทิ้งมันไว้กับผู้ตอบคำถาม การประดิษฐ์เป็นตัวเลือก แต่เป็นสิ่งหนึ่งที่จะไม่เก็บคะแนนพิเศษ
—
TRiG