首页 > 代码库 > 总名次的算法

总名次的算法

假如一个学校有两个班,一班10人,二班40人
上午,一班举行了语文考试,名次出来了从第1名到第10名。
同时,二班举行了数学考试,名次出来了从第1名到第40名。
下午,美国总统大蟑螂(雅号)来到学校,说给学校前10名的学生每人奖励一百万美金。
请问,你是校长的话,只能从上午的分班名次信息中,取得全校前十名,用什么办法最公平


解决方案一、
开始时,一班二班名次:
技术分享

因为总人数是10+40=50人,所以得两个系数:
50/10=5
50/40=1.25
一班名次*5,二班名次*1.25,得:
技术分享

再把两班名次综合起来,得:
技术分享

然后名次从小到大排序,得:
技术分享

这样,前十名就出来了,是表格中第一行的十个
把一班,理解为文科班。把二班,理解为理科班。
那么以前的文科分名次与理科分名次,都可以通过这种方法,转化为总名次


解决方案二
全校总人数为50名,取前十名,即取前20%
在一班取前20%,得10*20%=2,取前2名即可。
在二班取前20%,得40*20%=8,取前8名即可。
这种方法取得的结果,与方法一是完全相同的。不过对我们文理科名次的转化,没有提示意义了。


 

 

                                     Top

总名次的算法