知道你大学考试为什么都及格了吗?
经常逃课、不学习的孩纸们,你们知道为什么大学考试都过了吗?
你听过开根号乘以10吗?
据说,每次考完试之后,分数都太难看,挂科的太多了~~于是乎,老师们想出这么个“开根号乘以10”的办法。
这种方式在大学里面流传甚广~
令f(x)=sqrt(x)*10, (0<=x<=100) , x为考生原始成绩,把x经过 f 映射后的像作为考生最终的登记成绩,
这样做有很多好处:
- f(x)是单调上升的,这样两个成绩x1,x2在经过 f 映射后仍保持原序,保证了处理的公平
- f(36)=60,这样考生只要考36分就能及格了!而 f(100)=100,这样保证了分数的上确界是一样的,多合理
- f(x)是凸函数,这样越低的分数就能得到越高的涨幅,而越高的分数仅得到较平缓的涨幅,实在是太美了
计算来验证下:
public class ScoreTestMain { public static void main(String[] args) { calculate(); } /** * f(x) = sqrt(x)*10, (0<=x<=100) x为考生原始成绩 */ public static void calculate() { int score = 0; for (; score <= 100; score++) { double temp = Math.sqrt(score) * 10.0d; System.out.println("原始分数:" + score + "\t,计算后的分数:" + (int) temp); } } }
运行输出如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
原始分数:0 ,计算后的分数:0 原始分数:1 ,计算后的分数:10 原始分数:2 ,计算后的分数:14 原始分数:3 ,计算后的分数:17 原始分数:4 ,计算后的分数:20 原始分数:5 ,计算后的分数:22 原始分数:6 ,计算后的分数:24 原始分数:7 ,计算后的分数:26 原始分数:8 ,计算后的分数:28 原始分数:9 ,计算后的分数:30 原始分数:10 ,计算后的分数:31 原始分数:11 ,计算后的分数:33 原始分数:12 ,计算后的分数:34 原始分数:13 ,计算后的分数:36 原始分数:14 ,计算后的分数:37 原始分数:15 ,计算后的分数:38 原始分数:16 ,计算后的分数:40 原始分数:17 ,计算后的分数:41 原始分数:18 ,计算后的分数:42 原始分数:19 ,计算后的分数:43 原始分数:20 ,计算后的分数:44 原始分数:21 ,计算后的分数:45 原始分数:22 ,计算后的分数:46 原始分数:23 ,计算后的分数:47 原始分数:24 ,计算后的分数:48 原始分数:25 ,计算后的分数:50 原始分数:26 ,计算后的分数:50 原始分数:27 ,计算后的分数:51 原始分数:28 ,计算后的分数:52 原始分数:29 ,计算后的分数:53 原始分数:30 ,计算后的分数:54 原始分数:31 ,计算后的分数:55 原始分数:32 ,计算后的分数:56 原始分数:33 ,计算后的分数:57 原始分数:34 ,计算后的分数:58 原始分数:35 ,计算后的分数:59 原始分数:36 ,计算后的分数:60 原始分数:37 ,计算后的分数:60 原始分数:38 ,计算后的分数:61 原始分数:39 ,计算后的分数:62 原始分数:40 ,计算后的分数:63 原始分数:41 ,计算后的分数:64 原始分数:42 ,计算后的分数:64 原始分数:43 ,计算后的分数:65 原始分数:44 ,计算后的分数:66 原始分数:45 ,计算后的分数:67 原始分数:46 ,计算后的分数:67 原始分数:47 ,计算后的分数:68 原始分数:48 ,计算后的分数:69 原始分数:49 ,计算后的分数:70 原始分数:50 ,计算后的分数:70 原始分数:51 ,计算后的分数:71 原始分数:52 ,计算后的分数:72 原始分数:53 ,计算后的分数:72 原始分数:54 ,计算后的分数:73 原始分数:55 ,计算后的分数:74 原始分数:56 ,计算后的分数:74 原始分数:57 ,计算后的分数:75 原始分数:58 ,计算后的分数:76 原始分数:59 ,计算后的分数:76 原始分数:60 ,计算后的分数:77 原始分数:61 ,计算后的分数:78 原始分数:62 ,计算后的分数:78 原始分数:63 ,计算后的分数:79 原始分数:64 ,计算后的分数:80 原始分数:65 ,计算后的分数:80 原始分数:66 ,计算后的分数:81 原始分数:67 ,计算后的分数:81 原始分数:68 ,计算后的分数:82 原始分数:69 ,计算后的分数:83 原始分数:70 ,计算后的分数:83 原始分数:71 ,计算后的分数:84 原始分数:72 ,计算后的分数:84 原始分数:73 ,计算后的分数:85 原始分数:74 ,计算后的分数:86 原始分数:75 ,计算后的分数:86 原始分数:76 ,计算后的分数:87 原始分数:77 ,计算后的分数:87 原始分数:78 ,计算后的分数:88 原始分数:79 ,计算后的分数:88 原始分数:80 ,计算后的分数:89 原始分数:81 ,计算后的分数:90 原始分数:82 ,计算后的分数:90 原始分数:83 ,计算后的分数:91 原始分数:84 ,计算后的分数:91 原始分数:85 ,计算后的分数:92 原始分数:86 ,计算后的分数:92 原始分数:87 ,计算后的分数:93 原始分数:88 ,计算后的分数:93 原始分数:89 ,计算后的分数:94 原始分数:90 ,计算后的分数:94 原始分数:91 ,计算后的分数:95 原始分数:92 ,计算后的分数:95 原始分数:93 ,计算后的分数:96 原始分数:94 ,计算后的分数:96 原始分数:95 ,计算后的分数:97 原始分数:96 ,计算后的分数:97 原始分数:97 ,计算后的分数:98 原始分数:98 ,计算后的分数:98 原始分数:99 ,计算后的分数:99 原始分数:100 ,计算后的分数:100
看到了吗?只要你的分数达到36分,你就及格了。36分耶!!
不过经过上面的计算,还是会有些人没及格,那如果想要全班都及格,咋办呢?
老师们不愧是老师,于是有了下面的计算方法:
f(x)=max(60,min) + (100-max(60,min))*(x-min)/(max-min) 其中:min是原最低分,max是原最高分,X是考生原始成绩
这种算法在符合以上开根号乘以十的众多合理性的基础上(对于第三条,尽管其非凸函数,但是在分越低上调幅度越大这点上是一致的~),
还有以下独特优点:
- 最低分保证大于等于60,也就是没人会挂科!
- f(x)不仅是X的函数,还是max和min,即原最高分和最低分的函数,也就是说这个变换不仅依赖于本人的分数,还依赖于其他人的分数。这增加了横向比较,无疑在相对性上做的更好;
- 由于f(x)是X的线性变换,在出现不确定的情形下仍然不失为一种准确无偏的估计。
还是计算来验证下:
package score.test; public class ScoreTestMain { public static void main(String[] args) { calculate(100, 0); } /** * f(x)=max(60,min) + (100-max(60,min))*(x-min)/(max-min). * min是原最低分,max是原最高分,X是考生原始成绩 * * @param max * 原最高分 * * @param min * 原最低分 * */ public static void calculate(double max, double min) { int score = 0; for (; score <= 100; score++) { double temp = Math.max(60, min) + (100d - Math.max(60, min)) * (score - min) / (max - min); System.out.println("原始分数:" + score + "\t,计算后的分数:" + (int) temp); } } }
计算结果:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
原始分数:0 ,计算后的分数:60 原始分数:1 ,计算后的分数:60 原始分数:2 ,计算后的分数:60 原始分数:3 ,计算后的分数:61 原始分数:4 ,计算后的分数:61 原始分数:5 ,计算后的分数:62 原始分数:6 ,计算后的分数:62 原始分数:7 ,计算后的分数:62 原始分数:8 ,计算后的分数:63 原始分数:9 ,计算后的分数:63 原始分数:10 ,计算后的分数:64 原始分数:11 ,计算后的分数:64 原始分数:12 ,计算后的分数:64 原始分数:13 ,计算后的分数:65 原始分数:14 ,计算后的分数:65 原始分数:15 ,计算后的分数:66 原始分数:16 ,计算后的分数:66 原始分数:17 ,计算后的分数:66 原始分数:18 ,计算后的分数:67 原始分数:19 ,计算后的分数:67 原始分数:20 ,计算后的分数:68 原始分数:21 ,计算后的分数:68 原始分数:22 ,计算后的分数:68 原始分数:23 ,计算后的分数:69 原始分数:24 ,计算后的分数:69 原始分数:25 ,计算后的分数:70 原始分数:26 ,计算后的分数:70 原始分数:27 ,计算后的分数:70 原始分数:28 ,计算后的分数:71 原始分数:29 ,计算后的分数:71 原始分数:30 ,计算后的分数:72 原始分数:31 ,计算后的分数:72 原始分数:32 ,计算后的分数:72 原始分数:33 ,计算后的分数:73 原始分数:34 ,计算后的分数:73 原始分数:35 ,计算后的分数:74 原始分数:36 ,计算后的分数:74 原始分数:37 ,计算后的分数:74 原始分数:38 ,计算后的分数:75 原始分数:39 ,计算后的分数:75 原始分数:40 ,计算后的分数:76 原始分数:41 ,计算后的分数:76 原始分数:42 ,计算后的分数:76 原始分数:43 ,计算后的分数:77 原始分数:44 ,计算后的分数:77 原始分数:45 ,计算后的分数:78 原始分数:46 ,计算后的分数:78 原始分数:47 ,计算后的分数:78 原始分数:48 ,计算后的分数:79 原始分数:49 ,计算后的分数:79 原始分数:50 ,计算后的分数:80 原始分数:51 ,计算后的分数:80 原始分数:52 ,计算后的分数:80 原始分数:53 ,计算后的分数:81 原始分数:54 ,计算后的分数:81 原始分数:55 ,计算后的分数:82 原始分数:56 ,计算后的分数:82 原始分数:57 ,计算后的分数:82 原始分数:58 ,计算后的分数:83 原始分数:59 ,计算后的分数:83 原始分数:60 ,计算后的分数:84 原始分数:61 ,计算后的分数:84 原始分数:62 ,计算后的分数:84 原始分数:63 ,计算后的分数:85 原始分数:64 ,计算后的分数:85 原始分数:65 ,计算后的分数:86 原始分数:66 ,计算后的分数:86 原始分数:67 ,计算后的分数:86 原始分数:68 ,计算后的分数:87 原始分数:69 ,计算后的分数:87 原始分数:70 ,计算后的分数:88 原始分数:71 ,计算后的分数:88 原始分数:72 ,计算后的分数:88 原始分数:73 ,计算后的分数:89 原始分数:74 ,计算后的分数:89 原始分数:75 ,计算后的分数:90 原始分数:76 ,计算后的分数:90 原始分数:77 ,计算后的分数:90 原始分数:78 ,计算后的分数:91 原始分数:79 ,计算后的分数:91 原始分数:80 ,计算后的分数:92 原始分数:81 ,计算后的分数:92 原始分数:82 ,计算后的分数:92 原始分数:83 ,计算后的分数:93 原始分数:84 ,计算后的分数:93 原始分数:85 ,计算后的分数:94 原始分数:86 ,计算后的分数:94 原始分数:87 ,计算后的分数:94 原始分数:88 ,计算后的分数:95 原始分数:89 ,计算后的分数:95 原始分数:90 ,计算后的分数:96 原始分数:91 ,计算后的分数:96 原始分数:92 ,计算后的分数:96 原始分数:93 ,计算后的分数:97 原始分数:94 ,计算后的分数:97 原始分数:95 ,计算后的分数:98 原始分数:96 ,计算后的分数:98 原始分数:97 ,计算后的分数:98 原始分数:98 ,计算后的分数:99 原始分数:99 ,计算后的分数:99 原始分数:100 ,计算后的分数:100
姜还是老的辣啊~~少年,我们图森破,图样啊~
这两种方法计算的曲线如下图: