//I have a list of students List<Student>
Students
{
lond StudentId;
double Marks;
int Rank;
double Percentile;
}
我提供了Id和Marks,需要计算等级和百分位数。 我搜索了计算百分位数的方法,但他们提供了不同格式的答案,如 - 如何计算第95百分位数或第5百分位数。
但我需要计算的是每个学生的排名和特殊百分位,而不是特定的百分位持有者 thnx提前...
答案 0 :(得分:3)
好的,所以你需要先按Mark排序/排序所有学生,这样最好的成绩才是列表中的第一个。然后你可以通过计算来明显填充Rank。
对于百分位数(TotalNumberOfStudents - Rank of Student) / (TotalNumberOfStudents - 1)
所以换句话说,如果你是排名第一的学生,你比100%的其他学生好,如果你在100名学生中排名50,那么你比50%的学生好。
现在一个问题是,如果学生可以获得相同的分数,那么他们就不需要计入公式的分母,因为这代表了比你差的学生人数。