相关疑难解决方法(0)

有没有一种有效的方法可以在具有给定总和或平均值的范围内生成 N 个随机整数?

有没有一种有效的方法来生成 N 个整数的随机组合,使得——

  • 每个整数都在区间 [ min, max] 中,
  • 整数的总和为sum
  • 整数可以以任何顺序出现(例如,随机顺序),并且
  • 从满足其他要求的所有组合中随机均匀地选择该组合?

是否有类似的随机组合算法,其中整数必须按其值(而不是任何顺序)按排序顺序出现?

(选择具有平均值的适当组合mean是一种特殊情况,如果sum = N * mean。这个问题相当于生成sumN 个部分的均匀随机分区,每个部分都在区间 [ min, max] 中并以任何顺序出现或按它们的排序顺序出现值,视情况而定。)

我知道对于以随机顺序出现的组合,可以通过以下方式解决此问题(编辑 [Apr. 27]:算法修改。):

  1. 如果N * max < sumN * min > sum,则无解。

  2. 如果N * max == sum,则只有一个解,其中所有N数字都等于max。如果N * min == sum,则只有一个解,其中所有N数字都等于min

  3. 使用Smith 和 Tromble(“Sampling from the Unit Simplex”,2004)中给出的算法 …

language-agnostic random algorithm

26
推荐指数
2
解决办法
2258
查看次数

标签 统计

algorithm ×1

language-agnostic ×1

random ×1