【发布时间】:2014-02-04 04:39:26
【问题描述】:
我想编写 Java 代码来生成 [1,4] 范围内的随机整数数组。数组的长度为 N,在运行时提供。问题是范围[1,4]不是均匀分布的:
这意味着如果我创建 N=100 的数组,数字“1”将在一个数组中平均出现 40 次,数字“2”平均出现 10 次,依此类推。
现在我正在使用此代码生成范围 [1,4] 内的均匀分布的随机数:
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(4)+1;
}
}
如何使用如上图所示的非均匀分布来实现它?
【问题讨论】:
-
旁注:无需在方法顶部声明
int N;。
标签: java arrays random probability-density non-uniform-distribution