我正在尝试生成一个包含 N 个介于 0 到 100000 之间的整数值的数组。
这是代码:
import java.util.*;
public class Main
{
public static Scanner input = new Scanner(System.in);
public static void main(String[] args)
{
int N;
System.out.println();
System.out.print("Enter an integer number: ");
N = input.nextInt();
int[] a = new int[N];
Random generator = new Random();
for(int i = 0; i < a.length; i++)
{
a[i] = generator.nextInt(100001);
}
}
}
我注意到,每次生成新数组时,数组中的整数大部分是5位数字,有时有4位数字,很少有3位数字,但从未发生过我发现了 2 位或更少的数字。
我的实现是错误的吗?
最佳答案
考虑每种类型有多少个数字:
- 1 个 6 位数字
- 90000 个 5 位数字
- 9000 个 4 位数字
- 900 个三位数
- 90 个 2 位数字
- 10 个 1 位数字(包括 0)
因此,大约 90% 的数字应为 5 位数字,只有约 1% 的数字应为 3 位或更少。它们会发生,但很少。
关于java - 在java中随机生成整数数组的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6059978/