当前位置: 首页 > 面试题库 >

如何在数组中生成总计为已定义总数的随机数?

薄欣怿
2023-03-14
问题内容

我需要在Java中随机生成一个具有7个插槽的数组。所有这些插槽的值都必须至少为1,但总和必须为另一个已定义数字的总和。它们也都必须是int值,不能为1.5或0.9816465684646数字。例:

int a=10;

int[] ar = new int[7]
ar[0] = 1
ar[1] = 1
ar[2] = 2
ar[3] = 2
ar[4] = 1
ar[5] = 2
ar[6] = 1

我希望它生成类似的内容,但是如果int a = 15,则所有数字按任何顺序总计15


问题答案:

生成添加到给定总和的N个随机数的标准方法是将您的总和视为数字行,在该行上生成N-1个随机点,对其进行排序,然后将这些点之间的差用作最终值。要获得最小值1,请从您的总和中减去N,然后运行给定的算法,然后将1加回每个段。

public class Rand {
    public static void main(String[] args) {
        int count = 8;
        int sum = 100;
        java.util.Random g = new java.util.Random();

        int vals[] = new int[count];
        sum -= count;

        for (int i = 0; i < count-1; ++i) {
            vals[i] = g.nextInt(sum);
        }
        vals[count-1] = sum;

        java.util.Arrays.sort(vals);
        for (int i = count-1; i > 0; --i) {
            vals[i] -= vals[i-1];
        }
        for (int i = 0; i < count; ++i) { ++vals[i]; }

        for (int i = 0; i < count; ++i) {
            System.out.printf("%4d", vals[i]);
        }
        System.out.printf("\n");
    }
}


 类似资料:
  • 我需要在Java中随机生成一个有7个插槽的数组。所有这些插槽的值必须至少为1,但组合起来,则具有另一个定义数字的总值。它们也都需要是一个int值,没有1.5或0.9816465684646数字。示例: 我希望它生成类似的东西,但如果inta=15,所有的数字将以任何顺序总计15

  • 问题内容: 我将如何列出N个(例如100个)随机数,使其总和为1? 我可以用 我将如何修改此列表,使其总数为1(这是用于概率模拟)。 问题答案: 实际上,最简单的解决方案是采用N个随机值并除以和。 一种更通用的解决方案是使用Dirichlet发行版 http://en.wikipedia.org/wiki/Dirichlet_distribution (可在numpy中获得)。 通过更改分布的参数

  • 本文向大家介绍Ruby生成随机数的方法总结,包括了Ruby生成随机数的方法总结的使用技巧和注意事项,需要的朋友参考一下 数字实际上不是随机的 没有一台计算机能纯粹通过计算产生真正的随机数。它们能做的最好的事情就是生成伪随机数,伪随机数是一组看起来随机但实际上不是随机的数字。 对于人类观察者来说,这些数字确实是随机的。不会有短的重复序列,而且,至少对人类观察者来说,它们是完全随机的。但是,如果有足够

  • 第一次在StackOverflow。我希望有人能帮我搜索一个算法。 我需要在给定的范围内生成N个随机数,求和到给定的和! null 可以生成N个常数和的数,解模,像这样:生成和是常数的随机数,但我不能用范围来完成。 或者通过产生N个随机值,将它们求和,然后将常数和除以随机和,然后将每个随机数乘以这个商,就像这里提出的那样。 我不能采用这些解决方案的主要问题是,我的每个随机值都有不同的范围,我需要这

  • 本文向大家介绍Pytorch生成随机数Tensor的方法汇总,包括了Pytorch生成随机数Tensor的方法汇总的使用技巧和注意事项,需要的朋友参考一下 在使用PyTorch做实验时经常会用到生成随机数Tensor的方法,比如: torch.rand() torch.randn() torch.normal() torch.linespace() 均匀分布 torch.rand(*sizes,

  • 本文向大家介绍Java中生成随机数的实现方法总结,包括了Java中生成随机数的实现方法总结的使用技巧和注意事项,需要的朋友参考一下 在实际开发工作中经常需要用到随机数。如有些系统中创建用户后会给用户一个随机的初始化密码。这个密码由于是随机的,为此往往只有用户自己知道。他们获取了这个随机密码之后,需要马上去系统中更改。这就是利用随机数的原理。总之随机数在日常开发工作中经常用到。而不同的开发语言产生随