用java实现正态分布编号1-44位同学的三门课程成绩,要求三门课程成绩是大于60分小于95分的整数,三门课程分别是springboot,vue,uni-app
时间: 2024-02-27 13:54:16 浏览: 120
以下是一个简单的 Java 实现,使用 Java 内置的 Random 和 Math 类来生成正态分布的成绩,同时保证成绩在 60~95 之间。
```java
import java.util.Arrays;
import java.util.Random;
public class Main {
public static void main(String[] args) {
// 生成正态分布的成绩
int[] springbootScores = generateScores(44);
int[] vueScores = generateScores(44);
int[] uniappScores = generateScores(44);
// 打印成绩
System.out.println("Springboot Scores: " + Arrays.toString(springbootScores));
System.out.println("Vue Scores: " + Arrays.toString(vueScores));
System.out.println("Uni-app Scores: " + Arrays.toString(uniappScores));
}
/**
* 生成正态分布的成绩数组
* @param n 数组长度
* @return 成绩数组
*/
private static int[] generateScores(int n) {
int[] scores = new int[n];
Random random = new Random();
double mean = 77.5; // 均值
double stdDev = 8; // 标准差
for (int i = 0; i < n; i++) {
double score = random.nextGaussian() * stdDev + mean;
score = Math.round(score); // 四舍五入到整数
score = Math.min(score, 95); // 最大值为 95
score = Math.max(score, 60); // 最小值为 60
scores[i] = (int) score;
}
return scores;
}
}
```
上述代码中,我们先定义了均值和标准差,然后使用 Random 类的 nextGaussian 方法生成一个符合正态分布的随机数,最后使用 Math 类的 round 方法将其四舍五入到整数,并最终保证其在 60~95 之间。然后,我们依次生成了 Springboot、Vue 和 Uni-app 的成绩数组,并将其打印出来。
阅读全文