first commit

This commit is contained in:
编码猿
2024-09-27 01:32:49 +08:00
commit 28ebe05a64
7399 changed files with 1174529 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
import math
import numpy as np
from scipy import integrate
#历史数据处理
def handle_data(all_marks=[569,
570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,
595,596,597,598,599
]):#以列表形式传入省份所有考生的成绩[1,2,3]
a = np.mean(all_marks)#平均值
sigma = np.std(all_marks)#方差
print('a=',a,'sigma=',sigma)
return a,sigma
#等效分计算
def mark(a=584.0,sigma=8.94427190999916,per_mark=600):#a和sigma由上一个函数得出per_mark为需要转化成等效成绩的高考分数
re_mark = 100 * ((per_mark - a) / sigma) + 500
if re_mark > 900:
re_mark = 900
elif re_mark < 100:
re_mark = 100
return re_mark
#录取概率
def P_get(uni_marks=[580,581,582,583,
584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599],per_mark=589): #以列表形式学校录取的所有考生的成绩
per_mark = mark(per_mark=per_mark)
re_uni_mark = [] #学校录取学生的等效分
for i in uni_marks:
re_uni_mark.append(mark(per_mark=i))
E = np.mean(re_uni_mark) #学校录取考生的等效分平均值即期望
S = np.std(re_uni_mark)
D = S ** 2 #样本方差
def p(x): #录取分数的概率密度函数
return (1/(D*(2*math.pi)**0.5))*((math.e)**(-((x-E)**2)/(2*D)))
P,err = integrate.quad(p,100,per_mark)
P = P*100
print('录取概率为',P)
return P
# num = 570
# while num < 600:
# print('分数为',num,'时','录取概率为',P_get(per_mark=num))
# num += 1