- 阅读权限
- 255
- 威望
- 1 级
- 论坛币
- 219352 个
- 通用积分
- 5.5952
- 学术水平
- 42 点
- 热心指数
- 72 点
- 信用等级
- 44 点
- 经验
- 19878 点
- 帖子
- 514
- 精华
- 0
- 在线时间
- 925 小时
- 注册时间
- 2013-1-28
- 最后登录
- 2023-11-29
教授
还不是VIP/贵宾
- 威望
- 1 级
- 论坛币
- 219352 个
- 通用积分
- 5.5952
- 学术水平
- 42 点
- 热心指数
- 72 点
- 信用等级
- 44 点
- 经验
- 19878 点
- 帖子
- 514
- 精华
- 0
- 在线时间
- 925 小时
- 注册时间
- 2013-1-28
- 最后登录
- 2023-11-29
| 开心 2016-5-22 00:15:59 |
---|
签到天数: 69 天 连续签到: 2 天 [LV.6]常住居民II
|
100论坛币
现在一个班级有40名学生n01--n40,考试设置10门课程 x01--x10,每科课程有不同的权重w01--w10(取值范围是(0,1)开区间),得出每个学生的加权平均成绩y1~y40, 然后给他们排名。 问题是:要想让张三、李四、王五的排名尽量靠前,权重应当怎么设置? 程序代码如下:
- #首先假设有10科成绩
- x01<-rnorm(n = 40,mean = 80,sd = 10)
- x02<-rnorm(n = 40,mean = 80,sd = 10)
- x03<-rnorm(n = 40,mean = 80,sd = 10)
- x04<-rnorm(n = 40,mean = 80,sd = 10)
- x05<-rnorm(n = 40,mean = 80,sd = 10)
- x06<-rnorm(n = 40,mean = 80,sd = 10)
- x07<-rnorm(n = 40,mean = 80,sd = 10)
- x08<-rnorm(n = 40,mean = 80,sd = 10)
- x09<-rnorm(n = 40,mean = 80,sd = 10)
- x10<-rnorm(n = 40,mean = 80,sd = 10)
- da01<-data.frame(x01,x02,x03,x04,x05,x06,x07,x08,x09,x10)
- #每科成绩有一个权重(权重处于(0,1),且10科权重之和等于1)
- w01<-0.1
- w02<-0.1
- w03<-0.1
- w04<-0.1
- w05<-0.1
- w06<-0.1
- w07<-0.1
- w08<-0.1
- w09<-0.1
- w10<-0.1
- attach(da01)
- #计算加权平均分
- da01$y<-0+
- x01*w01+
- x02*w02+
- x03*w03+
- x04*w04+
- x05*w05+
- x06*w06+
- x07*w07+
- x08*w08+
- x09*w09+
- x10*w10
- detach(da01)
- #求每一位同学的排名
- da01$rk<-rank(x = -da01$y,na.last = TRUE)
- View(da01)
- #问题来了,如果想让张三、李四、王五的排名尽量靠前,那么各科成绩的权重w01~w10 应该怎么设置?
- # 实际上就是求 min(y[1]+(y[2]+(y[3]) 的问题。
复制代码
|
-
总评分: 论坛币 + 50
查看全部评分
|