java - java中具有固定平均值的随机整数数组

标签 java arrays algorithm random

我需要创建一个随机整数数组,它们的总和是 1000000,这些数字的平均值是 3。数组中的数字可以重复,数组的长度可以是任意数字。

我能够找到随机整数数组,它们的总和为 1000000。

    ArrayList<Integer> array = new ArrayList<Integer>();

    int a = 1000000;
    Random rn = new Random();
    while (a >= 1)
    {
        int answer = rn.nextInt(a) + 1;
        array.add(answer);
        a -= answer;
    }

但是,我不知道如何找到平均数为 3 的随机数。

最佳答案

这在数学上是不可能的:

您正在寻找 n 个值,它们的总和为 1000000,它们的平均值为 3,即 1000000/n。因为 n 只能取整数值,所以这是不可能的。

关于java - java中具有固定平均值的随机整数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29907493/

相关文章:

java - Android - 如何创建类似 html 文本区域的 EditText

java - ListView 中的 ViewPagers 显示空白列表项

c - 如何从 C 中的 1 和 0 数组中获取十六进制数?

algorithm - KdTree 节点移除

c - if else 递归最差时间复杂度

Java内存分配限制

java - 死锁——这个程序能死锁吗?

arrays - setValues 不能将数组转换为对象[][]

c++:将文本文件解析并读取到由定界符分隔的多个数组中

algorithm - 如何在 Scala 中简化表达式(and、or、not)?