当前位置: 首页 > 知识库问答 >
问题:

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

许自强
2023-03-14

我需要创建一个随机整数数组,它们的和是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的随机数。

共有3个答案

祝锐
2023-03-14

我将遍历列表两次,如果这两个位置的整数相加并除以2 == 3,则返回,否则,递增整数。

薛泰
2023-03-14

如果它们被约束为平均值和随机值,它们必须被约束为一个值范围。1到5的范围(中位数为3)似乎是合理的。同样合理的是平滑分布,它给出了已知的总数和平均值。

这个简单的代码将完成以下所有功能:

List<Integer> numbers = new ArrayList<>(333334); // 1000000 / 3
// one instance of 5 must be omitted to make total exactly 1000000
numbers.addAll(Arrays.asList(1, 2, 3, 4));
for (int i = 0; i < 333330; i++)
    numbers.add((i % 5) + 1); // add 1,2,3,4,5,1,2,3,4,5,etc
Collections.shuffle(numbers);

// Check sum is correct
numbers.stream().reduce((a,b) -> a + b).ifPresent(System.out::println);

输出:

1000000

请注意,当总数为 10000000 时,数学上平均值不可能正好是 3(因为 1000000/3 的余数为 1/3),但是此代码非常接近:

1000000/333334 => 2.999994
宗政洋
2023-03-14

这在数学上是不可能的:

你正在寻找n个值,其之和为1000000,它们的平均值为3,即1000000 / n。

 类似资料:
  • 问题内容: 我有一个大小为N *M的矩阵,我想找到每一行的平均值。值是从1到5,并且没有任何值的条目设置为0。但是,当我想使用以下方法查找均值时,它给了我错误的均值,因为它还计算了具有值的条目0。 如何获得仅非零值的均值? 问题答案: 获取每一行的非零计数,并将其用于平均每一行的总和。因此,实现看起来像这样- 如果您使用的是较旧版本的NumPy,则可以使用count的float转换来替换,例如,

  • 希望这对你来说是有意义的,我很乐意更详细地解释这个问题。

  • 我有3个非常大的有符号整数。 我想计算它们的截断平均值。预期平均值是,即。 不可能计算为: 注:我读了所有关于2个数字的平均值的问题,但我不知道该技术如何应用于3个数字的平均值。 使用BigInteger将非常容易,但假设我不能使用它。 如果我转换为双精度,那么,当然,我会失去精度: 如果我转换为,它可以工作,但也让我们假设我不能使用它。 问题:有没有一种方法可以仅使用长类型来计算3个非常大整数的

  • 我正在尝试写一个程序,用户将把数字,我需要得到最接近的数字平均值。 那我就试着这么做; 我的问题是,当我输入数字1 12 17 23 62时,平均值是正确的:23.0,但输出是这样的: 为什么62号后不传递给else if语句? 多谢 所有代码

  • 我需要写一个程序来计算用户输入的整数的奇偶平均数。用户键入“完成”以完成。输出将显示奇数的平均值和偶数的平均值。 我有一个while循环程序,可以计算数字的和,我正试图增加奇数和偶数和的额外要求。这是代码: 下面是我修改的代码,对奇数和偶数进行排序,然后对每组进行平均。 预期: 实际:

  • 如果正确,则当 Z来自mu'=0,sigma'=1的标准正态分布Z时,我的y将从对数正态分布中提取。 最后,如果 y=exp^(ln((mean^2)/(sqrt(variance+mean^2))+sqrt(ln(1+(variance)/(mean^2)))*Z),y来自具有均值和方差的对数正态分布是否正确? 我的SAS代码是: 参考资料: Rick Wicklin的函数:http://blo