language: Ruby (ruby-1.9.2)
date: 108 days 16 hours ago
link:
可見度: public
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"