Python

60 分映射

2020-11-04  本文已影响0人  寂风如雪

众所周知,很多时候大学生的期末考试是靠师生情才通过的,那么老师就需要一种真实分数到最终分数的映射 f,要求其满足以下性质:

  1. y = f(x), x\in [0, 100], t\in [0, 100] 也就是说映射前后分数都在 0 到 100 范围内
  2. f(x) 单调,即本来分数高的同学,映射后还是分数高
  3. f(100) = 100, f(0) = 0, f(x_0) = 60,即满分还是满分,零分还是零分,而 x_0 则变为 60 分(捞一把)

考虑如下函数
y = b x ^ c
根据条件 3 确定参数即可,python 代码如下

import numpy as np

def fun_getter(x, y=60):
    c = (2 - np.log10(y))/(2-np.log10(x)) 
    b = np.power(100, 1-c)
    print(b, c)
    def fun(x):
        return b * np.power(x, c)
    return fun

上一篇 下一篇

猜你喜欢

热点阅读