Sudah ada pertanyaan tentang simulasi Masalah Monty Hall . Yang ini berbeda. The pengguna akan bermain dengan Masalah Monty Hall. Program Anda akan memainkan peran sebagai tuan rumah. Montybot, jika kamu suka.
Berikut langkah-langkahnya:
- Pilih (secara acak) yang mana dari tiga pintu yang menyembunyikan hadiah.
- Keluarkan tampilan visual tiga pintu. Sederhana
ABC
akan dilakukan. Atau tiga kotak. Atau terserah. - Terima input dengan memilih salah satu pintu. Ini bisa berupa klik mouse pada pintu yang dipilih, atau input huruf tunggal (
B
) atau apa pun. - Buka pintu lain. Anda tidak membuka pintu yang dipilih. Anda tidak membuka pintu menyembunyikan hadiah utama. Itu mungkin berarti Anda tidak punya pilihan, atau itu mungkin berarti Anda memiliki dua pilihan. Jika Anda memiliki dua pilihan, pilih satu secara acak. Secara visual menunjukkan bahwa pintu telah dibuka dan tidak ada hadiah yang disembunyikan di baliknya. Untuk input / output berbasis teks program, ini bisa sesederhana keluaran
AB0
, untuk menunjukkan bahwa pintuC
telah dibuka. Jangan ragu untuk lebih inventif. Jika Anda melakukan program GUI, pilihan tampilan Anda terserah Anda. - Terima input dari pengguna. Pengguna dapat memasukkan
stick
atauswitch
(atau, untuk program GUI, klik tombol, atau gunakan input pilih, atau apa pun). Jika pengguna memasukkan sesuatu selainstick
atauswitch
, implementasi tidak ditentukan. Melakukan apapun yang Anda inginkan. - Keluarkan teks
You won!
atauYou lost
. - Hentikan progamnya.
Aturan:
- Ketika Anda harus memilih sesuatu secara acak , jangan khawatir tentang keacakan kriptografi. Setiap
rand()
fungsi akan melakukan. - Program tidak boleh curang. Hadiah harus ada di tempat sebelum permainan dimulai. Artinya, langkah-langkah harus dilakukan dalam urutan yang diberikan: Pertama pilih pintu di belakang untuk menyembunyikan hadiah Anda, lalu minta pemain untuk memilih. Pilihan pintu mana yang terbuka pada langkah 4 harus terjadi pada langkah 4: tidak dipilih sebelumnya.
- Output pada langkah 6 harus jujur.
- Ini golf kode. Kode terpendek menang.
Jawaban:
APL, 77
Kebutuhan
⎕IO←0
. Diuji pada Dyalog.Penjelasan
Contohnya
sumber
≠
dalam sumber yang bermutasi menjadi=
dalam penjelasan.Python, 157
Contoh:
sumber
PowerShell:
192174Perubahan dari aslinya:
Kode Golf
Un-Golfed Code Dengan Komentar
sumber
Javascript,
221197Ini menggunakan dua panggilan ke Date.now () untuk keacakan dengan prompt di antara untuk menjamin penundaan. Input pengguna adalah indeks berbasis 0 (aturan memang mengatakan "apa pun"). Peringatan berikut mengatakan pintu mana yang dibuka. Berikut adalah versi yang sedikit lebih panjang yang memberikan jawaban sebelum pengguna memilih, untuk memverifikasi bahwa itu tidak curang:
Fiddle: http://jsfiddle.net/acbabis/9J2kP/
EDIT: Terima kasih, dave
sumber
(function(q,r,s,t,u,v){f='ABC';d=[0,1,2];b=q%3;a=r(f);d.splice(a,1);(a==b)?((r(f[d[q%2]])==t)?s(u):s(v)):(r(f[d[(d[0]==b)+0]])!=t)?s(u):s(v)})(Date.now(),prompt,alert,'stick','You won!','You lost')
"I can't pass Date.now() ... I can, however, pass Date.now"
???date.now
melewati fungsi,date.now()
melewati hasil dari fungsiPHP> = 5.4,
195192Keluaran:
sumber