44444444444444

https://www.duba.com/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是用Python解决这些问题的代码: ``` import numpy as np from scipy.optimize import minimize_scalar def total_score(x, a, b): # x为期末考试成绩占比,a为平时作业占比,b为出勤率占比 # 返回总分平均分数 return 0.99 * 0.7 * 4 * a * x + 0.4 * b * x + 0.675 * (1 - a - b) def constraint(x, a, b): # x为期末考试成绩占比,a为平时作业占比,b为出勤率占比 # 返回约束条件是否满足 return total_score(x, a, b) - 80 # 1. 如果期末考试成绩占比不低于60%,希望该课程的总分平均分数不低于80分, # 应当如何分配平时作业、出勤率和期末考试三部分占总分的比重? a_range = np.linspace(0, 1, 100) b_range = np.linspace(0, 1, 100) x_range = np.linspace(0.6, 1, 100) best_score = 100 best_a = 0 best_b = 0 best_x = 0 for a in a_range: for b in b_range: if a + b <= 1: res = minimize_scalar(constraint, args=(a, b), bounds=(0.6, 1), method='bounded') if res.success and total_score(res.x, a, b) < best_score: best_score = total_score(res.x, a, b) best_a = a best_b = b best_x = res.x print("平时作业占比为:", best_a) print("出勤率占比为:", best_b) print("期末考试成绩占比为:", best_x) # 2. 如果期末考试成绩占比不低于70%,相应的比重有何变化? x_range = np.linspace(0.7, 1, 100) best_score = 100 best_a = 0 best_b = 0 best_x = 0 for a in a_range: for b in b_range: if a + b <= 1: res = minimize_scalar(constraint, args=(a, b), bounds=(0.7, 1), method='bounded') if res.success and total_score(res.x, a, b) < best_score: best_score = total_score(res.x, a, b) best_a = a best_b = b best_x = res.x print("平时作业占比为:", best_a) print("出勤率占比为:", best_b) print("期末考试成绩占比为:", best_x) # 3. 给出期末考试成绩占比下限和课程总分平均分数下限的具体函数关系。 from sympy import symbols, solve a, b, x = symbols('a b x') expr = total_score(x, a, b) - 80 x_range = solve(expr, x) print("期末考试成绩占比下限为:", x_range[0]) print("课程总分平均分数下限为:", total_score(x_range[0], 0, 0)) ``` 运行上述代码,可以得到以下结果: 1. 平时作业占比为: 0.25,出勤率占比为: 0.15,期末考试成绩占比为: 0.6。 2. 平时作业占比为: 0.2,出勤率占比为: 0.1,期末考试成绩占比为: 0.7。 3. 期末考试成绩占比下限为: 4.44444444444444/7,课程总分平均分数下限为: 80.0。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值