统计随机整数出现的概率。设从自然数区间[1,m]中随机取n个整数,整数m和整数n从键盘输入,n>m,比如 n=200, m=6,统计区间[1,m]中的每个数在n个整数中出现的频率
时间: 2024-11-10 08:13:32 浏览: 6
统计给定整数M和N区间内素数的个数并对它们求和-C语言代码
要统计从自然数区间[1, m]中随机选取n个整数,每个数出现的频率,你需要先生成这n个随机数,然后计算它们出现的次数。以下是一个简单的步骤描述:
1. **获取输入**:读取用户输入的整数n和m。
2. **随机数生成**:使用Java的Random类,生成一个包含n个在[1, m]范围内的随机整数列表。
3. **计数**:遍历生成的随机数列表,对区间[1, m]中的每个数,增加其在列表中出现的计数。
4. **计算频率**:对于每个数i,频率等于它在列表中出现的次数除以总的抽取次数n。
5. **输出结果**:打印出每个数及其对应的频率。
下面是一个简化的伪代码示例:
```java
import java.util.Random;
public class FrequencyCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter value of n: ");
int n = scanner.nextInt();
System.out.print("Enter value of m: ");
int m = scanner.nextInt();
Random random = new Random();
List<Integer> randomNumbers = new ArrayList<>(n);
while (randomNumbers.size() < n) {
randomNumbers.add(random.nextInt(m + 1)); // Including m in the range
}
Map<Integer, Integer> frequencyMap = new HashMap<>();
for (int num : randomNumbers) {
frequencyMap.put(num, frequencyMap.getOrDefault(num, 0) + 1);
}
for (Map.Entry<Integer, Integer> entry : frequencyMap.entrySet()) {
int number = entry.getKey();
double frequency = (double) entry.getValue() / n;
System.out.printf("Number %d appears with a frequency of %.2f%%\n", number, frequency * 100);
}
}
}
```
阅读全文