Eng*_*uad 0 java arrays random int
我试图生成一个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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我注意到,每次我生成新数组时,数组中的大多数整数都是5位数,有时有4位数,很少有3位数,但我从未发现2位数或更少的数字.
我的实施错了吗?
Jon*_*eet 12
考虑每种类型的数量:
因此,大约90%的数字应该是5位数字,只有大约1%的数字应该是3位数或更少.它们会发生,但很少发生.
似乎错误的是你认为这在任何方面都是奇怪的.
在0到100000之间的数字中,只有1有6位数,大约90%有5位数,9%有4位数,0.9%有3位数,只有0.09%有1或2位数.因此,如果给出一个统一的分布(nextInt()实现),那么你根本看不到它们或者根本没有看到它们并不奇怪.如果你想要一个不同的发行版,你必须自己实现它.
| 归档时间: |
|
| 查看次数: |
442 次 |
| 最近记录: |