Java 生成随机数直到达到某个和的更好的解决方案

Java 生成随机数直到达到某个和的更好的解决方案,java,random,Java,Random,我有一个随机数数组,我想不断改变数组值,直到它达到某个平均值,我在循环中检查它 部分代码: numbers[]是整数数组,numbers Random[]是随机数组 while(avg!=avg(numbers)){ for(...){ numbers[i] = numbersRandom[i].nextInt((max-min)+1)+min; } } 试一试 用所需的平均值填充数组:{1.5,1.5,…1.5} 选择一个随机值 将此随机值添加到数组中随机选择的元素中;

我有一个随机数数组,我想不断改变数组值,直到它达到某个平均值,我在循环中检查它

部分代码:

numbers[]是整数数组,numbers Random[]是随机数组

while(avg!=avg(numbers)){
   for(...){
     numbers[i] = numbersRandom[i].nextInt((max-min)+1)+min;
   }
}
试一试

  • 用所需的平均值填充数组:{1.5,1.5,…1.5}

  • 选择一个随机值

  • 将此随机值添加到数组中随机选择的元素中;从数组中随机选择的不同元素中减去相同的随机值

  • 如果整个数组没有足够的随机性,返回到2。否则就停止


  • 此方法在每次重复中保持数组平均值相同。在步骤4中,您可以检查标准偏差。

    是的,但速度非常慢。最好计算最后一个值,这样您就有了所需的总和。这可以快得多。顺便说一句,计算和比计算平均值更快,结果也一样。所以你是不是建议我使用随机数组,根据我需要的和手动更改最后一个或两个数字?如果有问题,请至少礼貌地告诉我出了什么问题!我不明白这个问题。你的问题意识到了吗?我不这么认为,因为您已经提供了一个部分代码,可以满足您的需要。你想要一个更好的解决方案吗?为什么我真的不认为在标题中只回答“是”或“否”就足够了。@user4655509是的,您可以使用递归和回溯。此外,还需要根据目标总和调整最大值和最小值。