Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env ruby
- require 'csv'
- def flip; rand(2) == 1; end
- headers = ['year', '# male pres', '# female pres']
- rows = []
- 250.times do |j|
- years = 2016
- men, women = 44, 0
- balanced = false
- i = 0
- while !balanced && years < 9_000_000 do
- i += 1
- if flip # is woman?
- women += 1
- else
- men += 1
- end
- if flip # is two-term?
- years += 8
- else
- years += 4
- end
- if women > men
- balanced = true
- end
- end
- rows << [years, men, women]
- end
- rows.sort! { |a,b| a.first <=> b.first }
- csv = CSV.generate do |csv|
- csv << headers
- rows.each { |row| csv << row }
- end
- print csv
- avg = rows.inject(0) { |total,row| total += row.first } / 50
- puts "Average: #{avg}"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement