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

在给定的范围内生成N个随机数,这些随机数的总和为给定的和

尤钱明
2023-03-14

第一次在StackOverflow。我希望有人能帮我搜索一个算法

我需要在给定的范围内生成N个随机数,求和到给定的和!

    null

可以生成N个常数和的数,解模,像这样:生成和是常数的随机数,但我不能用范围来完成。

或者通过产生N个随机值,将它们求和,然后将常数和除以随机和,然后将每个随机数乘以这个商,就像这里提出的那样。

我不能采用这些解决方案的主要问题是,我的每个随机值都有不同的范围,我需要这些值在范围内均匀分布(例如,在min/max处没有频率发生,如果我切断小于/大于min/max的值,就会发生这种情况)。

共有1个答案

孙修贤
2023-03-14

首先,注意该问题相当于:

生成k个和到一个数y的数,这样x_1,...,x_k-每个都有一个极限。

第二个可以通过简单地从数字中减少下界来实现--所以在您的示例中,它等效于:

(*)注意,可以使用fisher-yates算法对列表进行洗牌。(您可以在通过所需的限制后中途中止算法)。

 类似资料:
  • 本文向大家介绍Java 生成给定范围内的随机数,包括了Java 生成给定范围内的随机数的使用技巧和注意事项,需要的朋友参考一下 为了生成给定范围内的随机数,Java代码如下- 示例 输出结果 名为Demo的类包含主要功能。在这里,将创建一个新的随机实例以及一个新的数组列表。创建随机元素并将其分配给变量。使用add函数将这些随机变量添加到列表中。这些元素显示在控制台上。

  • 问题内容: 如何在给定范围之间生成奇数随机数。 对于例如:对于1到6之间的范围。随机编号为3或1或5 产生随机数的方法: 请参阅如何在Java中生成特定范围内的随机整数? 产生奇数随机数的方法 此函数将始终将2转换为3而不是1。我们能否使它成为一个更随机的函数,该函数有时将2转换为3,有时转换为1? 问题答案: 假设max为包容性,我建议以下几点: 它导致所有奇数之间的偶数分布。

  • 本文向大家介绍C#生成给定范围内的随机整数,包括了C#生成给定范围内的随机整数的使用技巧和注意事项,需要的朋友参考一下 示例 生成一个介于minValue和之间的随机数maxValue - 1。            

  • 问题内容: 我知道如何在Python范围内生成随机数。 我知道我可以将其循环生成n个数量的这些数字 但是,我需要确保该列表中的每个数字都是唯一的。除了大量的条件语句之外,还有一种直接的方法可以生成n个唯一的随机数吗? 重要的是列表中的每个数字都不同。 所以 [12,5,6,1] =好 但 [12,5,5,1] =不好,因为数字5出现两次。 问题答案: 如果您只需要采样而无需更换: random.s

  • 问题内容: 我需要从给定范围生成随机的BigDecimal值。用Java怎么做? 问题答案:

  • 问题内容: 最重要的答案是建议使用switch语句来完成这项工作。但是,如果我要考虑的情况很多,那么代码看起来就很笨拙。我有一个巨大的switch语句,在每种情况下都一遍又一遍地重复非常相似的代码。 当您要考虑的概率很大时,是否有更好,更干净的方法来选择具有一定概率的随机数?(例如〜30) 问题答案: 这是一个Swift实现,受各种答案的影响很大,这些答案会生成具有给定(数字)分布的随机数 对于