Ranking methods: Difference between revisions

m (→‎{{header|Java}}: small change)
(→‎{{header|Ruby}}: Added Ruby)
Line 572:
5, (41, 'Barry')
7, (39, 'Stephen')</pre>
=={{header|Ruby}}==
<lang ruby>ar = "44 Solomon
42 Jason
42 Errol
41 Garry
41 Bernard
41 Barry
39 Stephen".lines.map{|line| line.split}
 
grouped = ar.group_by{|pair| pair.delete_at(0).to_i}
s_rnk = 1
m_rnk = o_rnk = f_rnk = 0
puts "stand.\tmod.\tdense\tord.\tfract."
 
grouped.each.with_index do |(score, names), i|
d_rnk = i + 1
m_rnk += names.flatten!.size
f_rnk = (s_rnk + m_rnk)/2.0
names.each do |name|
o_rnk += 1
puts "#{s_rnk}\t#{m_rnk}\t#{d_rnk}\t#{o_rnk}\t#{f_rnk.to_s.gsub(".0","")}\t#{score} #{name}"
end
s_rnk += names.size
end</lang>
{{out}}
<pre>stand. mod. dense ord. fract.
1 1 1 1 1 44 Solomon
2 3 2 2 2.5 42 Jason
2 3 2 3 2.5 42 Errol
4 6 3 4 5 41 Garry
4 6 3 5 5 41 Bernard
4 6 3 6 5 41 Barry
7 7 4 7 7 39 Stephen
</pre>
1,149

edits