大学课程中可能有多少种不同的结果组合?

问题描述

大学课程中,作业中可能有多少种不同的结果组合?

我很有趣地计算出完成本课程的独特方式的数量。为了使事情变得容易,没有局部标记

以下是一些条件:

  • 有四个可评估的任务

    • 作业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
}