Java编写程序,随机产生600个1到6之间的整数,统计每个数出现的次数。修改程序,使之产生6000个1到6之间的随机数,并统计每个数出现的次数。比较不同的结果并给出结论.
时间: 2024-11-27 15:15:36 浏览: 7
在Java中,你可以使用`java.util.Random`类配合数据结构如`HashMap`来实现这个任务。首先,我们创建一个简单的程序来生成指定范围内的随机数并统计它们的出现次数:
```java
import java.util.*;
public class RandomNumberCounter {
private static final int MIN = 1;
private static final int MAX = 6;
public static void main(String[] args) {
int numberOfNumbers = 600; // 初始数量
Map<Integer, Integer> countMap = new HashMap<>();
for (int i = 0; i < numberOfNumbers; i++) {
int randomNum = generateRandomNumber();
countMap.put(randomNum, countMap.getOrDefault(randomNum, 0) + 1);
}
printCountMap(countMap);
// 修改数量至6000
numberOfNumbers = 6000;
countMap.clear(); // 清空之前的数据
for (int i = 0; i < numberOfNumbers; i++) {
int randomNum = generateRandomNumber();
countMap.put(randomNum, countMap.getOrDefault(randomNum, 0) + 1);
}
printCountMap(countMap); // 输出新的计数结果
}
private static int generateRandomNumber() {
return new Random().nextInt(MAX - MIN + 1) + MIN;
}
private static void printCountMap(Map<Integer, Integer> countMap) {
System.out.println("Number\tFrequency");
for (Map.Entry<Integer, Integer> entry : countMap.entrySet()) {
System.out.println(entry.getKey() + "\t" + entry.getValue());
}
}
}
```
在这个程序里,我们首先生成600个随机数并统计它们的频率,然后增加生成的数量到6000个并再次统计。
当你运行这个程序,你会看到两个部分的结果:一个是针对600个随机数的统计,另一个是针对6000个随机数的统计。通常来说,随着样本量的增大,每个数字出现的次数会更接近理论概率,即每个数字有1/6的概率出现。如果两个结果差异很大,可能是由于样本量较小导致的偶然性,而更大的样本量则能更好地反映真实概率分布。因此,可以得出结论:随机数出现的次数会更稳定地接近理论期望值,当样本足够大时。
阅读全文