生成0-100之间的200个随机整数,并统计各个数出现的次数和频率(用XX.X%表示)。 0==〉10次==〉XX.X% 1==〉20次==〉XX.X% 。。。。。。 用HashMap实现。
时间: 2023-09-15 15:05:35 浏览: 134
随机生成10个不重复的0-100的数字(实例讲解)
### 回答1:
以下是使用 Java 语言实现的代码示例:
```
import java.util.HashMap;
import java.util.Random;
public class RandomNumberFrequency {
public static void main(String[] args) {
// 生成 200 个随机数
int[] numbers = new int[200];
Random random = new Random();
for (int i = 0; i < 200; i++) {
numbers[i] = random.nextInt(101); // 生成 0~100 之间的随机数
}
// 统计每个数出现的次数
HashMap<Integer, Integer> frequencyMap = new HashMap<>();
for (int number : numbers) {
// 如果当前数字已经出现过,则在原有基础上加 1
if (frequencyMap.containsKey(number)) {
frequencyMap.put(number, frequencyMap.get(number) + 1);
} else {
// 否则将这个数字的出现次数设置为 1
frequencyMap.put(number, 1);
}
}
// 输出每个数字的出现次数和频率
for (int i = 0; i <= 100; i++) {
if (frequencyMap.containsKey(i)) {
int frequency = frequencyMap.get(i);
double percentage = (double) frequency / 200 * 100; // 计算频率
System.out.printf("%d ==> %d 次 ==> %.1f%%\n", i, frequency, percentage);
}
}
}
}
```
在这段代码中,我们使用了 `java.util.Random` 类来生成随机数,使用了 `java.util.HashMap` 类来统计每个数字出现的次数。
使用这段代码的输出结果可能如下所示:
```
0 ==> 4 次 ==> 2.0%
1 ==> 4 次 ==> 2.0%
2 ==> 4 次 ==> 2.0%
3 ==> 6 次 ==> 3.0%
4 ==> 4 次 ==> 2.0%
5 ==> 4 次 ==> 2.0%
6 ==> 3 次 ==> 1.5%
7 ==> 5 次 ==> 2.
### 回答2:
可以使用HashMap来实现统计0-100之间200个随机整数出现的次数和频率。下面是代码示例:
```java
import java.util.HashMap;
import java.util.Random;
public class RandomNumberStats {
public static void main(String[] args) {
HashMap<Integer, Integer> numberCount = new HashMap<>();
int totalNumbers = 200;
Random random = new Random();
for (int i = 0; i < totalNumbers; i++) {
int randomNumber = random.nextInt(101); // 生成0-100的随机整数
numberCount.put(randomNumber, numberCount.getOrDefault(randomNumber, 0) + 1);
}
for (int number = 0; number <= 100; number++) {
int count = numberCount.getOrDefault(number, 0);
double frequency = (double) count / totalNumbers * 100;
System.out.printf("%d==>%d次==>%f%%\n", number, count, frequency);
}
}
}
```
上述代码中,我们通过`HashMap<Integer, Integer>`,其中键是0-100之间的整数,值是该整数出现的次数。我们使用`getOrDefault()`方法来获取某个整数对应的出现次数,如果该整数在HashMap中不存在,则返回默认值0。
通过调用`Random.nextInt(int bound)`方法生成0-100之间的随机整数,并将其存储在哈希映射中,并将该整数的出现次数加1。
然后我们遍历0-100之间的整数,分别获取每个整数的出现次数,并通过计算频率将其转换为百分比。最后,将整数、出现次数和频率打印出来。
注意:由于使用的是伪随机数生成器,因此每次运行结果都可能不同。
### 回答3:
可以使用HashMap来实现统计各个数出现的次数和频率。首先生成0-100之间的200个随机整数并存储在一个数组中,然后通过遍历数组,使用HashMap来统计各个数出现的次数。
```java
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
public class Main {
public static void main(String[] args) {
// 生成200个随机整数并存储在数组中
int[] numbers = generateRandomNumbers(200);
// 使用HashMap统计各个数出现的次数
Map<Integer, Integer> countMap = countOccurrences(numbers);
// 计算每个数出现的频率
Map<Integer, Double> frequencyMap = calculateFrequency(countMap, numbers.length);
// 打印统计结果
for (Map.Entry<Integer, Integer> entry : countMap.entrySet()) {
int number = entry.getKey();
int count = entry.getValue();
double frequency = frequencyMap.get(number);
System.out.println(number + "==> " + count + "次 " + frequency + "%");
}
}
// 生成0-100之间的随机整数
private static int[] generateRandomNumbers(int count) {
int[] numbers = new int[count];
Random random = new Random();
for (int i = 0; i < count; i++) {
numbers[i] = random.nextInt(101);
}
return numbers;
}
// 统计各个数的出现次数
private static Map<Integer, Integer> countOccurrences(int[] numbers) {
Map<Integer, Integer> countMap = new HashMap<>();
for (int number : numbers) {
countMap.put(number, countMap.getOrDefault(number, 0) + 1);
}
return countMap;
}
// 计算每个数的频率
private static Map<Integer, Double> calculateFrequency(Map<Integer, Integer> countMap, int totalCount) {
Map<Integer, Double> frequencyMap = new HashMap<>();
for (Map.Entry<Integer, Integer> entry : countMap.entrySet()) {
int number = entry.getKey();
int count = entry.getValue();
double frequency = count / (double) totalCount * 100;
frequencyMap.put(number, frequency);
}
return frequencyMap;
}
}
```
这段代码会输出每个数出现的次数和频率,形如"0==〉10次==〉XX.X% 1==〉20次==〉XX.X% ..."。注意,由于使用了随机生成数,并未使用固定种子,因此每次运行结果可能会有所不同。
阅读全文