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

Java 在大学课程中,有多少种不同的结果组合是可能的? 在大学课程中,作业中有多少种不同的结果组合?,java,algorithm,combinations,Java,Algorithm,Combinations,我对计算我完成这门课程的独特方式的数量很感兴趣。为了让事情更简单,没有局部标记 以下是一些条件: 有四项可评估的任务 作业1:加权10% 作业2:加权15% 作业3:加权15% 作业4:加权60% 每次评估的可能分数: 作业1:/10 作业2:/10 作业3:/10 作业4:/100 我对我的数学有点生疏 从算法的角度来看,您将如何解决这个问题? 我想了解的是如何迭代每个课程的每个等级,并返回在这种情况下可以实现的唯一组合的数量 我试过: public static void

我对计算我完成这门课程的独特方式的数量很感兴趣。为了让事情更简单,没有局部标记

以下是一些条件:
  • 有四项可评估的任务

    • 作业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 
}
publicstaticvoidmain(字符串[]args){
int m=0;
对于(int i=0;i<11;i++){
对于(int j=0;j<11;j++){
对于(int k=0;k<11;k++){
对于(int l=0;l<101;l++){
m++;
}
}
}
}
系统输出打印项次(m);
//输出: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
}
publicstaticvoidmain(字符串[]args){
int m=0;
int pass=0;
积分=0;
对于(int i=0;i<11;i++){
对于(int j=0;j<11;j++){
对于(int k=0;k<11;k++){
对于(int l=0;l<101;l++){
m++;
浮动最终等级=(浮动)(i*0.1+j*0.15+k*0.15+l*0.6);
如果(最终等级>=50&&最终等级<60){
通过+=1;
}否则如果(最终等级>=60&&最终等级<70){
学分+=1;
}
}
}
}
}
系统输出打印项次(m);
系统输出打印项次(通过);
系统输出打印项次(学分);
//输出:134431
}

你说作业的可能分数是“/10”是什么意思?你的意思是0到10之间的数字吗?是的。任何介于0和10之间的数字。计算总分的公式是什么?当每个作业都有不同的最大分数时,权重是如何工作的还不清楚。怎么会不清楚?称重系统通常通过(马克*重量)工作。不?@Ventti使用马克*重量,最大可达到64分。当60-69表示信用时,这似乎不正确。