女子举重问题

一、问题的描述

问题及要求

1、搜集各个级别世界女子举重比赛的实际数据。分别建立女子举重比赛总成绩的线性模型、幂函数模型、幂函数改进模型,并最终建立总冠军评选模型。

应用以上模型对最近举行的一届奥运会女子举重比赛总成绩进行排名,并对模型及结果进行必要的分析。

2、请对以上模型作进一步的改进,或提出更好的模型,并应用模型进行排名。

3、同样对最近举行的一届奥运会所有男女举重冠军行进评选,选出1名最优秀的举重运动员,给出你的定量评选方法并合理论述。

4、由以上研究过程及结果结论的启发,你认为这个模型可以推广应用到生活或学习中的哪些情况下,或者应该对生活或学习中哪些事物现有的处理方式需要做出改进,请给出你的分析。

说明:完成一篇建模论文。(具体资料及提交要求见说明文件

二、搜集资料和数据

1.级别的划分

以下括号内容均为网上的查阅资料

(男子举重原有8个级别是:56、62、69、77、85、94、105公斤级和105公斤以上级,于2018年由国际举联调整新的10个级别是55(非奥)、61、67、73、81、89(非奥)、96、102(非奥)、109公斤级和109公斤以上级共10个级别。女子举重原来7个级别是:48、53、58、63、69、75公斤级和75公斤级以上级,新的10个级别也调整为:45(非奥)、49、55、59、64、71(非奥)、76、81(非奥)、87公斤级和87公斤以上级。男女6个非奥级别只在奥运会以外的赛事举行。)

在本题目中,我们按照奥运会的规定来进行求解,规定为8个级别(在下面做的时候用的是10个级别)

男运动员:61、67、73、81、96、109、109以上

女运动员:49、55、59、64、76、87、87以上

2.搜集数据

数据来源:

女子举重世界纪录_国家体育总局 (sport.gov.cn)(旧纪录不可用,这是一个注意点,一定要注意,要用2018以后的数据,新标准之下的记录)

图1.旧标准的记录

可用数据网站(需要科学上网):https://zh.wikipedia.org/zh-hans/%E8%88%89%E9%87%8D%E4%B8%96%E7%95%8C%E7%B4%80%E9%8C%84%E5%88%97%E8%A1%A8#%E5%A5%B3%E5%AD%90

 在这个网站里面,我们需要选取,当前记录这一栏目,千万千万千万记住,不要用旧纪录这一栏,因为在2018年之后男子和女子的分类的级别已经改变。

图2.男子新记录 

 图3.女子新纪录

三、第一问

1.分别绘制抓举、挺举、总和下的散点图如下:

图4.体重和举重重量的散点趋势图

 分析图形可能为线性关系、非线性关系(指数、对数等)。

散点图代码如下(python):

#引入相应的库
import numpy as np
import pandas as pd 
import matplotlib.pyplot as plt
import seaborn as sns

#读取数据
data=pd.read_excel("data.xlsx",sheet_name="女子")
#选取抓举、挺举、总和
data_1=data[data["class"]=="抓举"].sort_values("weight")
data_2=data[data["class"]=="挺举"].sort_values("weight")
data_3=data[data["class"]=="总和"].sort_values("weight")
#筛选出自变量和因变量
x1=data_1["weight"].values
y1=data_1["record"].values
x2=data_2["weight"].values
y2=data_2["record"].values
x3=data_3["weight"].values
y3=data_3["record"].values

#解决中文乱码和符号显示的问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['font.sans-serif']=['Microsoft YaHei']
#绘制散点图
plt.figure(figsize=(10,8),dpi=300)
plt.title("体重和举重重量散点趋势图",fontsize="16")
plt.xlabel("体重/kg",fontsize="14")
plt.ylabel("举重重量/kg",fontsize="14")
plt.scatter(x1,y1,color="red",label="抓举")
plt.scatter(x2,y2,color="blue",label="挺举")
plt.scatter(x3,y3,color="green",label="总和")
plt.grid(True)
plt.legend()
plt.savefig("1.png")

2.线性拟合

拟合图如下

计算结果

从上面的结果中我们可以看出,当多项式的最高次数大于4次的时后,虽然模型的R的平方较好,但是不符合实际情况,属于过拟合现象,上面的参数RMSE和MAE来计算误差的话,无法排除离群点的影响,所以采用了MAPE来计算误差的话,这样就排除离群点对模型的影响。这个多项式拟合可以用到第二问当中去,作为模型的改进。

2.幂函数拟合

相关的理论支持:

 上图中的参数是举例子

拟合效果图如下: 

 模型的评估

    上面的参数RMSE和MAE来计算误差的话,无法排除离群点的影响,所以采用了MAPE来计算误差的话,这样就排除离群点对模型的影响。 

#幂函数进行拟合

#引入相应的库
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit

# 自定义的拟合函数
def func2(x,k):
    return k*np.power(x,2/3)

# 开始拟合
popt, pcov = curve_fit(func2, x3, y3)

# 提取拟合结果
k = popt[0]#幂函数的系数
print("幂函数的系数为:{:}\n".format(k))
print("y3的预测结果为:")
y_predict=func2(x3,k)#预测的结果值
print(y_predict)

x_new = np.linspace(0, 100, 1000) # 生成新的x轴数据
#绘制拟合曲线效果
plt.figure(figsize=(10,8),dpi=300)
plt.title("幂函数的拟合效果图",fontsize=16)
plt.xlabel("体重/kg",fontsize=14)
plt.ylabel("运动员所举的重量",fontsize=14)
plt.plot(x3,y3,"ro",label="真实值")
plt.plot(x_new,func2(x_new,k),color='blue',label="预测值")
plt.grid(True)
plt.legend(loc="upper left")
plt.savefig("3.png")


#误差分析
rmse_poly = np.sqrt(np.mean((y3 - func2(x3,k))**2))
mae_poly = np.mean(np.abs(y3 - func2(x3,k)))
mape_poly=np.mean(np.abs(y3-func2(x3,k))/func2(x3,k))

# 打印RMSE和MAE
print("幂函数拟合的RMSE和MAE分别为:{:.2f},{:.2f}".format(rmse_poly, mae_poly))
print("幂函数拟合的MAPE分别为:{:.2f}".format(mape_poly))
y_poly = poly(x_new)
# 计算R平方
r2_poly = r2_score(y3, func2(x3,k))
# 打印R平方
print("幂函数拟合的R平方为:{:.2f}".format(r2_poly))
print("\n")

3.改进幂函数的拟合

相关的理论支持:

 上图中的参数是举例子

改进幂函数的拟合效果图 

误差分析: 

     上面的参数RMSE和MAE来计算误差的话,无法排除离群点的影响,所以采用了MAPE来计算误差的话,这样就排除离群点对模型的影响。

#改进幂函数
#幂函数进行拟合

#引入相应的库
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit

# 自定义的拟合函数
def func2(x,k,w0,l):
    return k*np.power(x-w0,l)

# 开始拟合
popt, pcov = curve_fit(func2, x3, y3)

# 提取拟合结果
k = popt[0]#改进幂函数的系数k
w0=popt[1]#改进幂函数的w0
l=popt[2]#改进幂函数的l
print("改进幂函数的系数为:{:}\n".format(k))
print("改进幂函数的w0为:{:}\n".format(w0))
print("改进幂函数的l为:{:}\n".format(l))
print("y3的预测结果为:")
y_predict=func2(x3,k,w0,l)#预测的结果值
print(y_predict)

x_new = np.linspace(0, 100, 1000) # 生成新的x轴数据
#绘制拟合曲线效果
plt.figure(figsize=(10,8),dpi=300)
plt.title("改进幂函数的拟合效果图",fontsize=16)
plt.xlabel("体重/kg",fontsize=14)
plt.ylabel("运动员所举的重量",fontsize=14)
plt.plot(x3,y3,"ro",label="真实值")
plt.plot(x_new,func2(x_new,k,w0,l),color='blue',label="预测值")
plt.grid(True)
plt.legend(loc="upper left")
plt.savefig("4.png")


#误差分析
rmse_poly = np.sqrt(np.mean((y3 - func2(x3,k,w0,l))**2))
mae_poly = np.mean(np.abs(y3 - func2(x3,k,w0,l)))
mape_poly=np.mean(np.abs(y3-func2(x3,k,w0,l))/func2(x3,k,w0,l))

# 打印RMSE和MAE
print("改进幂函数拟合的RMSE和MAE分别为:{:.2f},{:.2f}".format(rmse_poly, mae_poly))
print("改进幂函数拟合的MAPE分别为:{:.2f}".format(mape_poly))
y_poly = poly(x_new)
# 计算R平方
r2_poly = r2_score(y3, func2(x3,k,w0,l))
# 打印R平方
print("改进幂函数拟合的R平方为:{:.2f}".format(r2_poly))
print("\n")

     综上所述,线性模型(一次)、幂函数模型、改进幂函数模型的效果大致相同,因此可以选择其中一个模型来进行下面的操作,为保持与二题的连贯性,建议选择线性模型,其次是改进幂函数模型,最后为幂函数模型。 

4.标准统一化 

相关理论基础:

 

 本文选取中间级别71公斤的作为标准,使所以级别的数据转换到71公斤的标准下。

下面是总和成绩记录的所有数据

 选用线性模型(一次),当然也可以选择其它模型(改进幂函数等)

即:y=2.52x+88.26 

 将级别6的数据代入,即可算出u=267.18

本文选取东京奥运会的举重数据进行计算,数据网站如下:

百度百科-验证

 数据处理:在当年东京奥运会有的级别中选取总冠军,以该级别的最高边界值作为选手的体重。

下表为东京奥运会上各个级别的女子总冠军。

 计算得出得结果如下:

可视化得分结果如下: 

 从上图可知:中国台北的郭婞淳为总冠军

代码:

#导库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#读取数据
data=pd.read_excel("data.xlsx",sheet_name="东京奥运会女子举重")
x4=data["weight"].values
y4=data["power"].values
#定义标准化函数
coefficients = np.polyfit(x3, y3, 1) # 用1次多项式进行拟合
poly = np.poly1d(coefficients) # 生成多项式函数
def zfunc(x,y):
    return 267.18*y/(2.52*x+88.26)

#求解运动员标准得分,该分数越大,证明运动员成绩越好
z=zfunc(x4,y4)
#将数据读入到data中
data["标准化得分"]=z

#画图
x5=data["name"].values
y5=z
plt.figure(figsize=(15,8),dpi=300)
plt.title("2021年东京奥运会女子举重统一标准下得分图",fontsize=16)
plt.xlabel("运动员姓名",fontsize=14)
plt.ylabel("标准得分",fontsize=14)
plt.plot(x5,y5,color="#FF8066",marker="o",label="标准得分")
plt.grid(True)
plt.legend(loc="upper left")
plt.savefig("5.png")
print("得分结果为:")
print(z)

三、第二问(多项式拟合)

from scipy.interpolate import interp1d
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import r2_score
 
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
plt.figure(figsize=(20,15),dpi=300)
plt.title("总成绩拟合图",fontsize=16)
plt.xlabel("体重",fontsize=14)
plt.ylabel("举重重量",fontsize=14)
for i in range(1,9):
    x_new = np.linspace(40, 100, 1000) # 生成新的x轴数据
    coefficients = np.polyfit(x3, y3, i) # 用5次多项式进行拟合
    poly = np.poly1d(coefficients) # 生成多项式函数
    # 绘图
    plt.subplot(2,4,i)
    plt.subplots_adjust(left=None, bottom=0.1, right=None, top=None,wspace=None, hspace=None)
    plt.grid(True)
    plt.scatter(x3,y3,marker="o",color="red", label='原始数据')
    plt.plot(x_new, poly(x_new), label=str(i)+'次多项式拟合')
    plt.legend(loc="upper left")
plt.savefig("2.png")
# 计算拟合后的数值
for i in range(1,9):
    coefficients = np.polyfit(x3, y3, i) # 用5次多项式进行拟合
    poly = np.poly1d(coefficients) # 生成多项式函数
    y_poly = poly(x_new)
    # # 计算RMSE和MAE
    # rmse_cubic = np.sqrt(np.mean((y - f_cubic(x))**2))
    # mae_cubic = np.mean(np.abs(y - f_cubic(x)))
    rmse_poly = np.sqrt(np.mean((y3 - poly(x3))**2))
    mae_poly = np.mean(np.abs(y3 - poly(x3)))
    mape_poly=np.mean(np.abs(y3-poly(x3))/poly(x3))

    # 打印RMSE和MAE
    print(str(i)+"次多项式拟合的RMSE和MAE分别为:{:.2f},{:.2f}".format(rmse_poly, mae_poly))
    print(str(i)+"次多项式拟合的MAPE分别为:{:.2f}".format(mape_poly))
    print(poly)
    y_poly = poly(x_new)
    # 计算R平方
    r2_poly = r2_score(y3, poly(x3))
    # 打印R平方
    print(str(i)+"次多项式拟合的R平方为:{:.2f}".format(r2_poly))
    print("\n")

 从上面的结果中我们可以看出,当多项式的最高次数大于4次的时后,虽然模型的R的平方较好,但是不符合实际情况,属于过拟合现象,上面的参数RMSE和MAE来计算误差的话,无法排除离群点的影响,所以采用了MAPE来计算误差的话,这样就排除离群点对模型的影响。这个多项式拟合可以用到第二问当中去,作为模型的改进,因此我们进行的优化为多项式优化。

可能大家会有疑问,为什么要用多项式拟合,而不去用其它函数呢?在这里就是用到泰勒公式的简单应用,用多项式近似地表示函数的公式称为泰勒公式,并且根据余项表达式的不同而有不同的形式。 得名于英国数学家布鲁克·泰勒,他在1712年的一封信里首次叙述了这个公式。嘿嘿这个大家大一的高数应该都是学过滴!

关于相关数学理论请看这篇文章(其实可以忽略,想了解的可以看下,记住结论就行,不用难为自己):

泰勒公式简单应用:多项式近似表示任意函数 - 知乎 (zhihu.com)

基于4次多项式的改进模型 

 从图中可以清晰的看出:在4次多项式的条件下候志惠的标准的分最高。

为什么和前面的不一样呢?大家可能有疑问,但是在下面可以做一个实验,当多项式的最高次大于等于1时,模型所评选的女子冠军均为候志惠,这说明多项式的拟合精度更高,更加具有稳定性和可信性。

 

 在这就不再一一列举了,从上面可以观察出随着最高次数的增加,模型逐渐趋于稳定。

代码:

#导库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

#读取数据
data=pd.read_excel("data.xlsx",sheet_name="东京奥运会女子举重")
x4=data["weight"].values
y4=data["power"].values

#改进的模型,4次多项式拟合
coefficients = np.polyfit(x3, y3, 5) # 只需改动这里面参数,即可拟合多种多项式
poly = np.poly1d(coefficients) # 生成多项式函数
print(poly)
u=poly(71)
print(u)

#定义改进后的标准得分函数
def zfunction(x,y):
    return (270.5482219490648*y)/poly(x)
z1=zfunction(x4,y4)

#画图
x5=data["name"].values
y5=z1
plt.figure(figsize=(15,8),dpi=300)
plt.title("5次改进02021年东京奥运会女子举重统一标准下得分图",fontsize=16)
plt.xlabel("运动员姓名",fontsize=14)
plt.ylabel("标准得分",fontsize=14)
plt.plot(x5,y5,color="b",marker="o",label="标准得分")
plt.grid(True)
plt.legend(loc="upper left")
plt.savefig("6.png")
print("得分结果为:")
print(z1)

至此解决重要的两问。三问、四问都比较容易解决。

四、第三问选取男女冠军

        这一问就比较简单啦,在这里我就给大家说一种思路

        首先按照上面的1、2问的思路对男子数据进行建模,选出男子冠军,然后再和我们选出的女子冠军进行比较,最后选出总冠军,关于比较的方法。

        我查阅了相关资料:

        ‘’科学界对于男性与女性在青春期形成的生理差异已经普遍达成共识。在哈伯德已经经历过的男性青春期期间,男性的肌肉量会得到增加。

        体育科学家塔克(Ross Tucker)称,男性青春期出现的一系列生理变化会(在男性与女性之间)带来显著的功能优势,他称在游泳与自行车运动上这种差异在10-12%之间,而在举重等涉及上肢肌肉力量的项目上可能达到“30-40%”这个结论我用往年的数据检验了,基本上是符合的,因此可以用了。

        在模型假设部分:假设同体重下,男子的上肢力量要比女子高35%(这个比例位于30%-40%就行)。(这句话一定要带上)

        即是选出的女子总冠军的标准化成绩乘上(1+0.35),再去和男子冠军的标准化成绩进行比较。根据我提供的数据男子标准到73kg、女子标准到71kg,由于男子的标准女子大,为了弥补这个差值,我们可以让女子和男子的上肢力量设置的大一些,也就是比0.35大一些,这样就弥补了这一缺陷啦。

        代码上面都有了,直接套用就行。

四、第四问语文建模外加一些机理分析

        这一问就更加简单了

        这一问可以从摔跤、拳击、赛艇按体重分等级的体育项目来考虑

        体测的男女的标准转化也是一个思路

至此,全部更新完全,本人水平有限,如有错误,可以提出,欢迎交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/888.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣-排名靠前的旅行者

大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:1407. 排名靠前的旅行者二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其…

【Java版oj】day10 井字棋、密码强度等级

目录 一、井字棋 (1)原题再现 (2)问题分析 (3)完整代码 二、密码强度等级 (1)原题再现 (2)问题分析 (3)完整代码 一、井字棋 &a…

【2023-03-10】JS逆向之美团滑块

提示:文章仅供参考,禁止用于非法途径 前言 目标网站:aHR0cHM6Ly9wYXNzcG9ydC5tZWl0dWFuLmNvbS9hY2NvdW50L3VuaXRpdmVsb2dpbg 页面分析 接口流程 1.https://passport.meituan.com/account/unitivelogin主页接口:需获取下面的参数&#xff0…

Java中的异常

程序错误一般分为三种:编译错误: 编写程序时没有遵循语法规则,编译程序能够自己发现错误并提示位置和原因。运行错误:程序在执行的时候运行环境发现了不能执行的操作。比如,JVM出错了,内存溢出等。逻辑错误…

《Spring Boot 趣味实战课》读书笔记(二)

牛刀小试——五分钟入门 Spring Boot 万物皆可 Hello World 创建一个 Web 工程 填写项目信息 选择依赖 从 IDEA 打开下载好的 Spring Boot 工程: 完成核心代码 创建 HelloController 类并编写 hello 方法 创建一个 HelloController 类,或者选择 Fi…

【webrtc】ICE 到VCMPacket的视频内存分配

ice的数据会在DataPacket 构造是进行内存分配和拷贝而后DataPacket 会传递给rtc模块处理rtc模块使用DataPacket 构造rtp包最终会给到OnReceivedPayloadData 进行rtp组帧。吊炸天的是DataPacket 竟然没有声明析构方法。RtpVideoStreamReceiver::OnReceivedPayloadData 的内存是外…

基于GPT-4的免费代码生成工具

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

Qt学习_08_用独立的文件存放样式表

0 前言 上一篇笔记对样式表进行了初步学习,QT学习_07_样式表的初步学习_江湖上都叫我秋博的博客-CSDN博客,在文末我们提到了“样式表肯定不能直接这么写在构造函数里面,那么多样式表看着心就堵,所以下一篇文章考虑如何把样式表用…

百度终于要出手了?文心一言

文心一言 百度全新一代知识增强大语言模型,文心大模型家族的新成员,能够与人对话互动,回答问题,协助创作,高效便捷地帮助人们获取信息、知识和灵感。 前几天炒的风风火火的ChatGPT,虽然 ChatGPT 很强大&a…

react的基础使用

react中为什么使用jsxReact 认为渲染逻辑本质上与其他 UI 逻辑内在耦合,比如,在 UI 中需要绑定处理事件、在某些时刻状态发生变化时需要通知到 UI,以及需要在 UI 中展示准备好的数据。react认为将业务代码和数据以及事件等等 需要和UI高度耦合…

双指针 -876. 链表的中间结点-leetcode

开始一个专栏,写自己的博客 双指针,也算是作为自己的笔记吧! 双指针从广义上来说,是指用两个变量在线性结构上遍历而解决的问题。狭义上说, 对于数组,指两个变量在数组上相向移动解决的问题;对…

【面试题系列】K8S常见面试题

目录 序言 问题 1. 简单说一下k8s集群内外网络如何互通的吧 2.描述一下pod的创建过程 3. 描述一下k8s pod的终止过程 4.Kubernetes 中的自动伸缩有哪些方式? 5.Kubernetes 中的故障检测有哪些方式? 6.Kubernetes 中的资源调度有哪些方式&#xff…

【vue.js】在网页中实现一个金属抛光质感的按钮

文章目录前言效果电脑效果手机效果说明完整代码index.html前言 诶?这有一个按钮(~ ̄▽ ̄)~,这是一个在html中实现的具有金属质感并且能镜面反射的按钮~ 效果 电脑效果 手机效果 说明 主要思路是使用 navig…

有关pytorch的一些总结

Tensor 含义 张量(Tensor):是一个多维数组,它是标量、向量、矩阵的高维拓展。 创建 非随机创建 1.用数组创建 将数组转化为tensor np.ones([a,b]) 全为1 #首先导入PyTorch import torch#数组创建 import numpy as np anp.arr…

面试阿里测开岗失败后,被面试官在朋友圈吐槽了......

前一阵子有个徒弟向我诉苦,说自己在参加某大厂测试面试的时候被面试官怼得哑口无言,场面让他一度十分尴尬印象最深的就是下面几个问题:根据你以前的工作经验和学习到的测试技术,说说你对质量保证的理解?非关系型数据库…

多线程案例——阻塞队列

目录 一、阻塞队列 1. 生产者消费者模型 (1)解耦合 (2)“削峰填谷” 2. 标准库中的阻塞队列 3. 自己实现一个阻塞队列(代码) 4. 自己实现生产者消费者模型(代码) 一、阻塞队列…

HTTP详解

一,什么是HTTPHTTP(全称为“超文本传输协议”),是一种应用非常广泛的应用层协议,之前在《初识网络原理》的博客(初识网络原理_徐憨憨!的博客-CSDN博客)中,有详细讲解过TCP/IP五层模型,其中应用层描述了数据…

15000 字的 SQL 语句大全 第一部分

一、基础 1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname 3、说明:备份sql server--- 创建 备份数据的 device USE master EXEC sp_addumpdevice disk, testBack, c:\mssql7backup\MyNwind_1.dat …

C语言格式和注意点

文章目录前言一、打印Hello World二、C语言格式注意点1.代码大小写2.输入法3.空格和分号三、C语言代码执行过程1.预处理2.编译3.汇编4.链接5.加载和执行总结前言 本篇文章将正式进入C语言的学习,我们先来打印一句Hello World吧(哈哈哈入门语言第一件事情打印Hello …

Redis知识点汇总

前言 梳理知识 说一下项目中的Redis的应用场景 首先知道Redis的5大value类型: string,list,hash, set ,zset 2.基本上是缓存 3.为的是服务无状态, 4.无锁化 Redis是单线程还是多线程 1.无论什么版本,工作线程就一个 2.6.x高版本出现IO多线程
最新文章