总名次的算法

Posted 欣乐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了总名次的算法相关的知识,希望对你有一定的参考价值。

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


解决方案一、
开始时,一班二班名次:


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


再把两班名次综合起来,得:


然后名次从小到大排序,得:


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

总名次最大的好处,是通用

比如说A学校B专业,去年录取的的总名次是一万名,

那么今年如果考到一万名,则多数可以进入这个学校+专业。

前年的也一样,如果A学校B专业前年的录取总名次是两万名,那如果今年考到两万名,

则多数可以进入这个学校+专业。

分数会由于各种原因而变动,而总名次总是那么稳定,波动不大。。


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


 

 

                                     Top

以上是关于总名次的算法的主要内容,如果未能解决你的问题,请参考以下文章

算法42-----相对名次

算法千题案例每日LeetCode打卡——67.相对名次

算法千题案例每日LeetCode打卡——67.相对名次

排序算法总结

用C语言编程实现快速排序算法

小明高考考了680分,他想知道在全国1000W考生中排什么名次?