如何解决大学课程中可能有多少种不同的结果组合?
大学课程中,作业中可能有多少种不同的结果组合?
我很有趣地计算出完成本课程的独特方式的数量。为了使事情变得容易,没有局部标记。
以下是一些条件:
-
有四个可评估的任务
- 作业1:权重为10%
- 作业2:权重为15%
- 作业3:权重为15%
- 作业4:加权60%
-
每次评估的可能标记:
- 作业1:/ 10
- 作业2:/ 10
- 作业3:/ 10
- 作业4:/ 100
我对组合离散数学有些不满意。
从算法的角度来看,您将如何解决这个问题? 我想找出的是如何遍历每门课程的每个年级,并返回在这种情况下可以实现的独特组合的数量。
我尝试过:
public static void main(String[] args) {
int m = 0;
for (int i = 0; i < 11; i++) {
for (int j = 0; j < 11; j++) {
for (int k = 0; k < 11; k++) {
for (int l = 0; l < 101; l++) {
m++;
}
}
}
}
System.out.println(m);
//out: 134431
}
我发现在这种情况下有134431个等级组合。但是我也想知道的是,说50-59(及格)或60-69(信用)的等级之间有多少组合。这就是我的困惑。
TL / DR:您在一门课程中可以得到多少个单独的分级评估组合?学期末成绩的范围是多少?
谢谢您的时间。
解决方法
继续您的想法,增加变量m
之后,您可以使用公式来计算组合的最终成绩,然后从该成绩中决定将该成绩通过小组或学分组。
例如我的
public static void main(String[] args) {
int m = 0;
int pass = 0;
int credit = 0;
for (int i = 0; i < 11; i++) {
for (int j = 0; j < 11; j++) {
for (int k = 0; k < 11; k++) {
for (int l = 0; l < 101; l++) {
m++;
float finalGrade = (float) (i * 0.1 + j * 0.15 + k * 0.15 + l * 0.6);
if (finalGrade >= 50 && finalGrade < 60) {
pass += 1;
} else if (finalGrade >= 60 && finalGrade < 70) {
credit += 1;
}
}
}
}
}
System.out.println(m);
System.out.println(pass);
System.out.println(credit);
//out: 134431
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。