1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | class MontyHall def initialize @doors = Array.new(3, :goat) @doors[rand(3)] = :car @chosen_door = rand(3) @open_door = rand(3) while @open_door == @chosen_door or @doors[@open_door] == :car @open_door = rand(3) end end def win? @doors[@chosen_door] == :car end def switch! @chosen_door = ([0, 1, 2] - [@chosen_door, @open_door])[0] end end cases_num = gets.to_i wins = 0 cases_num.times do game = MontyHall.new wins += 1 if game.win? end puts "No switch: #{wins} wins in #{cases_num} cases" wins = 0 cases_num.times do game = MontyHall.new game.switch! wins += 1 if game.win? end puts "Switch: #{wins} wins in #{cases_num} cases" |
Y2xhc3MgTW9udHlIYWxsIAogIAogIGRlZiBpbml0aWFsaXplCiAgICBAZG9vcnMgPSBBcnJheS5uZXcoMywgOmdvYXQpCiAgICBAZG9vcnNbcmFuZCgzKV0gPSA6Y2FyCiAgICBAY2hvc2VuX2Rvb3IgPSByYW5kKDMpCiAgICBAb3Blbl9kb29yID0gcmFuZCgzKQogICAgd2hpbGUgQG9wZW5fZG9vciA9PSBAY2hvc2VuX2Rvb3Igb3IgQGRvb3JzW0BvcGVuX2Rvb3JdID09IDpjYXIKICAgICAgQG9wZW5fZG9vciA9IHJhbmQoMykKICAgIGVuZAogIGVuZAogIAogIGRlZiB3aW4/CiAgICBAZG9vcnNbQGNob3Nlbl9kb29yXSA9PSA6Y2FyCiAgZW5kCiAgCiAgZGVmIHN3aXRjaCEKICAgIEBjaG9zZW5fZG9vciA9IChbMCwgMSwgMl0gLSBbQGNob3Nlbl9kb29yLCBAb3Blbl9kb29yXSlbMF0KICBlbmQKZW5kCgpjYXNlc19udW0gPSBnZXRzLnRvX2kKCndpbnMgPSAwCmNhc2VzX251bS50aW1lcyBkbwogIGdhbWUgPSBNb250eUhhbGwubmV3CiAgd2lucyArPSAxIGlmIGdhbWUud2luPwplbmQKCnB1dHMgIk5vIHN3aXRjaDogI3t3aW5zfSB3aW5zIGluICN7Y2FzZXNfbnVtfSBjYXNlcyIKCndpbnMgPSAwCmNhc2VzX251bS50aW1lcyBkbwogIGdhbWUgPSBNb250eUhhbGwubmV3CiAgZ2FtZS5zd2l0Y2ghCiAgd2lucyArPSAxIGlmIGdhbWUud2luPwplbmQKCnB1dHMgIlN3aXRjaDogI3t3aW5zfSB3aW5zIGluICN7Y2FzZXNfbnVtfSBjYXNlcyI=
-
upload with new input
-
結果: Success time: 0.07s 記憶體: 4760 kB 回傳值: 0
10000
No switch: 3365 wins in 10000 cases Switch: 6684 wins in 10000 cases
-
結果: Success time: 0s 記憶體: 4760 kB 回傳值: 0
No switch: 0 wins in 0 cases Switch: 0 wins in 0 cases



