如何在JAVA中查找随机生成的数字的平均值

时间:2019-01-18 03:28:49

标签: java random average

我正在为班上的学生随机生成GPA。在应用程序中,我重复了8次步骤,总共有8个不同的GPA。在我的印刷声明的结尾,我想计算所有8个GPA的总数。我只希望它打印一次。在课堂上或在应用程序中,我应该在哪里找到平均值的步骤?

在代码中,我尝试在多个区域中查找平均值,但未正确打印出来。我只是将它们记为笔记。

(在公共静态空间中)

for(int i = 1; i < 9; i++ )
 {
     //System.out.println(sd.getInfo());
     System.out.println("Semester " + i + " - " + sd.semesterGPA());
     System.out.println();
 }
   System.out.println(sd.averageGPA());
 }

(这是在公开课上的学生)

   String semesterGPA()
     {
       for(int i = 0; i < 1; i++)
     {         
          gpa = Math.random();
          myRandomNumber = (gpa * 4.1 );
          //String strDouble = String.format("%.2f", myRandomNumber);
          //average = (i/8);
          //System.out.println(firstName + "'s average GPA is " + average);
      }

    return firstName + "'s GPA is " +  String.format("%.2f", myRandomNumber);
    //System.out.println(firstName + "'s average GPA is " + average);
  }

String averageGPA()
{
   // double gpa = sum / count;

    return firstName + "'s average GPA is ";
}

3 个答案:

答案 0 :(得分:0)

我尝试使用Java-8

DoubleSummaryStatistics statistic = IntStream.range(0, 8)
    .boxed() //int to Integer
    .collect(Collectors.summarizingDouble(i -> Math.random() * 4.1)); //collect to statistic

System.out.println(statistic.getAverage());

您将从Math.random()*4.1的8个结果中获得平均值

答案 1 :(得分:0)

假设您有一个GPA列表,请在Java 8中使用以下代码查找平均值

    List<Double> gpas = Arrays.asList(1.0,2.0,3.0,4.0);
    double average = gpas.stream()
        .collect(Collectors.averagingDouble(value -> value.doubleValue()));
    System.out.println(average);

答案 2 :(得分:0)

您可以使用静态变量来跟踪所有GPA(在Student类内部),然后最终将其返回。

class Student{

  static double total;

  String semesterGPA(){
    .
    .
         //just add the GPA to the total before return statement
    total += myRandomNumber;
         //return statement 
  }

  String averageGPA()
  {
    double averageGPA = total / 9;
         //return statement including averageGPA
  }
}