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" |
Y2xhc3MgTW9udHlIYWxsIAogIAogIGRlZiBpbml0aWFsaXplCglAZG9vcnMgPSBBcnJheS5uZXcoMywgOmdvYXQpCglAZG9vcnNbcmFuZCgzKV0gPSA6Y2FyCglAY2hvc2VuX2Rvb3IgPSByYW5kKDMpCglAb3Blbl9kb29yID0gcmFuZCgzKQoJd2hpbGUgQG9wZW5fZG9vciA9PSBAY2hvc2VuX2Rvb3Igb3IgQGRvb3JzW0BvcGVuX2Rvb3JdID09IDpjYXIKCSAgQG9wZW5fZG9vciA9IHJhbmQoMykKCWVuZAogIGVuZAogIAogIGRlZiB3aW4/CglAZG9vcnNbQGNob3Nlbl9kb29yXSA9PSA6Y2FyCiAgZW5kCiAgCiAgZGVmIHN3aXRjaCEKCUBjaG9zZW5fZG9vciA9IChbMCwgMSwgMl0gLSBbQGNob3Nlbl9kb29yLCBAb3Blbl9kb29yXSlbMF0KICBlbmQKZW5kCgpjYXNlc19udW0gPSBnZXRzLnRvX2kKCndpbnMgPSAwCmNhc2VzX251bS50aW1lcyBkbwogIGdhbWUgPSBNb250eUhhbGwubmV3CiAgd2lucyArPSAxIGlmIGdhbWUud2luPwplbmQKCnB1dHMgIk5vIHN3aXRjaDogI3t3aW5zfSB3aW5zIGluICN7Y2FzZXNfbnVtfSBjYXNlcyIKCndpbnMgPSAwCmNhc2VzX251bS50aW1lcyBkbwogIGdhbWUgPSBNb250eUhhbGwubmV3CiAgZ2FtZS5zd2l0Y2ghCiAgd2lucyArPSAxIGlmIGdhbWUud2luPwplbmQKCnB1dHMgIlN3aXRjaDogI3t3aW5zfSB3aW5zIGluICN7Y2FzZXNfbnVtfSBjYXNlcyI=
-
upload with new input
-
result: Success time: 0.68s memory: 4760 kB returned value: 0
100000
No switch: 33334 wins in 100000 cases Switch: 66819 wins in 100000 cases
-
result: Time limit exceeded time: 5s memory: 5276 kB signal: 24 (SIGXCPU)
1000000
-
result: Success time: 0.07s memory: 4760 kB returned value: 0
10000
No switch: 3340 wins in 10000 cases Switch: 6636 wins in 10000 cases



