1
votes

Comment trouver la moyenne des nombres générés aléatoirement dans JAVA

Je génère au hasard un GPA pour un élève de la classe. Dans l'application, je répète l'étape 8 fois, pour un total de 8 GPA différents. À la fin de mon relevé d'impression, je veux calculer le total des 8 GPA. Je veux qu'il ne s'imprime qu'une seule fois. Où dois-je mettre les étapes pour trouver la moyenne, dans la classe ou dans l'application?

Dans le code, j'ai plusieurs zones où j'ai essayé de trouver la moyenne, mais cela ne s'est pas imprimé correctement. Je viens d'en faire des notes.

(ceci est dans le vide statique public)

   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 ";
}

(ceci est dans la classe publique étudiant) p >

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());
 }


0 commentaires

3 Réponses :


0
votes

J'ai essayé avec 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());

Vous obtiendrez la moyenne de 8 résultats de Math.random()*4.1

p >


0 commentaires

0
votes

Supposons que vous ayez une liste GPA, trouvez la valeur moyenne que vous pouvez utiliser le doce suivant en 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);


0 commentaires

0
votes

Vous pouvez utiliser une variable statique pour garder une trace de tous les GPA (à l'intérieur de la classe Student) et enfin la renvoyer.

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
  }
}


2 commentaires

Pourquoi le type de retour est String?


Dans la question mentionnée, il a utilisé le type de retour des fonctions comme String. C'est pourquoi