我有標準,其中百分比值。按百分比標準分配學生
criteria = {"Top" => 20, "Excellent" => 30, "Average" => 30, "Poor" => 20
我有學生哈希。鍵是學生ID和數值是學生分數
students = { 1 => 80,
2 => 90,
3 => 30,
4 => 50,
5 => 120,
6 => 90,
7 => 50,
8 => 50,
9 => 50,
10 => 30}
Crietria是由老師添加。學生名額按這種方式計算,因爲我不能得到例如2.5的學生:
students_positions = criteria.map {|k, v| (students.count * (v.to_f/100)).ceil }
f=> [2, 3, 3, 2]
我首先要做的就是通過自己的價值排序的學生(成績)
sorted_students = students.sort {|a1,a2| a2.last <=> a1.last }.to_h
=> {5=>120, 2=>90, 6=>90, 1=>80, 8=>50, 4=>50, 7=>50, 9=>50, 3=>30, 10=>30}
結果應該是20%( 2名學生職位)的學生散列獲得'最高'標準,30%(3個學生職位)獲得'優秀'等。如果兩名學生具有相同得分但被放置在不同標準組中,則應該都屬於之前的標準組。例如,One是90分的Top,另外一個是90分的Execellent,第二個必須移到Top crietria集團。
我怎樣才能通過標準拆分學生
此致 的Georgi
'學生'沒有'*'方法。目前還不清楚你在做什麼。 – sawa
@sawa對不起,我忘了改變它。其students.count – Georgi