Advertisement
Guest User

Untitled

a guest
May 24th, 2015
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.70 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2. require 'csv'
  3.  
  4. def flip; rand(2) == 1; end
  5.  
  6. headers = ['year', '# male pres', '# female pres']
  7. rows = []
  8. 250.times do |j|
  9. years = 2016
  10. men, women = 44, 0
  11. balanced = false
  12. i = 0
  13.  
  14. while !balanced && years < 9_000_000 do
  15. i += 1
  16. if flip # is woman?
  17. women += 1
  18. else
  19. men += 1
  20. end
  21.  
  22. if flip # is two-term?
  23. years += 8
  24. else
  25. years += 4
  26. end
  27.  
  28. if women > men
  29. balanced = true
  30. end
  31. end
  32.  
  33. rows << [years, men, women]
  34. end
  35.  
  36. rows.sort! { |a,b| a.first <=> b.first }
  37. csv = CSV.generate do |csv|
  38. csv << headers
  39. rows.each { |row| csv << row }
  40. end
  41. print csv
  42.  
  43. avg = rows.inject(0) { |total,row| total += row.first } / 50
  44. puts "Average: #{avg}"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement