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

生成概率分布范围内的随机整数

松博耘
2023-03-14
问题内容

我有一个问题,我想使用概率分布生成一组1到5之间的随机整数值。

泊松和逆伽玛是两个分布,它们显示了我所追求的特征(多数情况下为平均值,较少的较高数)。

我正在使用Apache Commons Math,但不确定如何使用可用的分布来生成所需的数字。


问题答案:

从问题描述中,听起来好像您实际上想要从离散的概率分布中生成样本,并且您可以将其EnumeratedIntegerDistribution用于此目的。为每个整数选择适当的概率,也许类似以下的内容将满足您的需求:

int[] numsToGenerate           = new int[]    { 1,   2,    3,   4,    5   };
double[] discreteProbabilities = new double[] { 0.1, 0.25, 0.3, 0.25, 0.1 };

EnumeratedIntegerDistribution distribution = 
    new EnumeratedIntegerDistribution(numsToGenerate, discreteProbabilities);

int numSamples = 100;
int[] samples = distribution.sample(numSamples);

只需将discreteProbabilities值调整为您所需的任何值即可。



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

  • 问题内容: 如何在JavaScript中的两个指定变量之间生成随机整数,例如,并输出以下任何内容? 问题答案: 一些示例: 这是背后的逻辑。这是三个简单的规则: 返回介于0(含)和1(不含)之间的。所以我们有一个这样的间隔: 现在,我们想要一个介于(含)和(不含)之间的数字: 我们可以使用来获取[min,max)间隔中的对应对象。但是,首先我们应该通过从第二个间隔中减去一点来解决这个问题: 这给出

  • 问题内容: 我需要生成一个范围内的随机唯一数字吗?怎么做 ? 我可以通过生成随机数 我知道这段代码不好,所以我需要一个更好的优化版本代码!帮帮我 ! 例如:如果我需要在1到15之间生成3个数字,它们应该像5、9、1而不是3,1,2 [具有1-3(我要生成的数字)] 问题答案: 以随机顺序排列数字范围的数组: 包装功能: 例: 结果:

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

  • 返回指定范围内的随机整数。 使用 Math.random() 生成一个随机数并将其映射到所需的范围,使用 Math.floor() 使其成为一个整数。 const randomIntegerInRange = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min; randomIntegerInRange(0, 5); /

  • 问题内容: 我有两个如下的双打 使用随机生成器,我需要在min和max范围之间创建一个双精度值。 但是这里没有什么可以指定范围的。 问题答案: 在Java 7发行之前曾问过这个问题,但是现在,还有另一种使用Java 7(及更高版本)API的可能方式: 将返回介于最小值(包含)和最大值(不含)之间的伪随机双精度值。范围不一定是,可以是。