Tag: 概率

Java- Math.random():选择13乘13三角形数组的元素

编辑:此问题已解决。 如果您想帮助解决另一个问题,请访问三角arrays中的Java偏差随机数 。 我正在做一个乘法游戏,所以我选择0到12之间的2个数字。 如果我这样做: int num1 = (int)(Math.random() * 13); int num2 = (int)(Math.random() * 13); 在一半的时间内拾取正方形(0x0,1×1,2×2等)(因为1×2与2×1相同)。 如何以相同的频率拾取所有组合? 有91种可能的组合(n(n + 1)/ 2)。 如果它有帮助,这里是一个13乘13的三角形数组: {{0}, {0,0}, {0,0,0}, {0,0,0,0}, {0,0,0,0,0}, {0,0,0,0,0,0}, {0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0}}; 我尝试选择第一个数字并给第二个数字成为第一个数字的几率为50%。 这没用。 我尝试将第二个数字作为第一个数字的1/91。 这导致较小的数字被选择的次数(大约7/91的时间;它是平滑的,弯曲的增加)。 我想过有一个随机数: int roll = random.next(91)然后将它分成2个条目(比如坐标(x,y)),但我无法弄清楚如何拆分它。

估计给出来自先验的其他概率的概率

我有一大堆数据(调用自动呼叫中心)关于一个人是否购买特定产品,1个购买,0个购买。 我想用这些数据来估算一个人购买特定产品的估计概率,但问题是我可能需要用相对较少的历史数据来做这件事,这些数据是关于有多少人购买/没有购买该产品。 一位朋友建议,在贝叶斯概率下,您可以通过提出“先验概率分布”来“帮助”您的概率估计,实际上这是在考虑实际数据之前有关您期望看到的信息。 所以我想做的是创建一个类似这个签名(Java)的方法: double estimateProbability(double[] priorProbabilities, int buyCount, int noBuyCount); priorProbabilities是我在以前的产品中看到的概率数组,该方法将用于为此概率创建先验分布。 buyCount和noBuyCount是特定于该产品的实际数据,我想根据数据和先前的数据估算用户购买的概率。 这是从方法返回的双精度数。 我不需要数学上完美的解决方案,只需要比统一或平坦的先验更好的东西(即概率= buyCount /(buyCount + noBuyCount) )。 由于我对源代码比数学符号更熟悉,如果人们可以在他们的解释中使用代码,我会很感激。

选择具有特定范围的唯一随机数

我的问题是我希望我的程序在0到3之间的数字范围内做出四个独特的随机选择我试着在随机类中做到但我不能,如果你可以通过代码帮助它会很棒,我的程序将是这样的事情可以说清楚 my range 0 1 2 3 randomly chosen number 3 0 1 2 randomly chosen number 1 0 2 randomly chosen number 2 0 it will choose 0 and then the program closes

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

我有一个问题,我想使用概率分布生成1到5之间的一组随机整数值。 Poisson和Inverse Gamma是两个分布,显示了我所发现的特征(多数均值,更低的数字)。 我正在寻找使用Apache Commons Math,但我不知道如何使用可用的发行版生成我想要的数字。

有效的Java项目47:了解并使用您的库 – 有缺陷的随机整数方法示例

在Josh给出的有缺陷的随机方法的例子中,该方法产生具有给定上界n的正随机数,我不明白他陈述的两个缺陷。 书中的方法是: private static final Random rnd = new Random(); //Common but deeply flawed static int random(int n) { return Math.abs(rnd.nextInt()) % n; } 他说,如果n是2的小幂,则生成的随机数序列将在短时间后重复出现。 为什么会这样? Random.nextInt()的文档说明Returns the next pseudorandom, uniformly distributed int value from this random number generator’s sequence. 所以不应该是,如果n是一个小整数,那么序列将重复,为什么这只适用于2的幂? 接下来他说如果n不是2的幂,一些数字平均会比其他数字更频繁地返回。 如果Random.nextInt()生成均匀分布的随机整数,为什么会发生这种情况呢? (他提供了一个代码片段,清楚地certificate了这一点,但我不明白为什么会出现这种情况,以及这与n是2的权力有什么关系)。

具有权重或偏差的随机布尔值

我需要生成一些随机的布尔值。 但是我需要能够指定返回true的概率。 结果如下: private Random random = new Random(); random.nextBoolean(); 不管用。 一种可能的解决方案是: private Random random = new Random() public boolean getRandomBoolean(float p){ return random.nextFloat() < p; } 我想知道是否有更好或更自然的方式来做到这一点。 编辑:我想我在问是否有一个提供nextBoolean(浮点概率)方法的库类。

哪个java-library计算累积标准正态分布函数?

对于一个项目,我有一个公式的规范,我必须实现。 在这些公式中,存在累积标准正态分布函数,其采用浮点并输出概率。 该function由Φ表示。 存在一个Java库,它可以计算这个函数吗?

生成概率分布

给定一个大小为n的数组我想为每个索引生成随机概率,使得Sigma(a[0]..a[n-1])=1 一个可能的结果可能是: 0 1 2 3 4 0.15 0.2 0.18 0.22 0.25 另一个完全合法的结果可能是: 0 1 2 3 4 0.01 0.01 0.96 0.01 0.01 如何轻松快速地生成这些内容? 任何语言的答案都很好,Java首选。

生成泊松和二项式随机数的算法?

我一直在四处寻找,但我不知道该怎么办。 我发现这个页面在最后一段中说: 使用这个简单的配方获得从泊松分布中获取的随机数的简单生成器:如果x 1 ,x 2 ,…是在0和1之间具有均匀分布的随机数序列,则k是第一个整数,其中乘积x 1 ·x 2 ·……·x k + 1 <e -λ 我发现了另一个描述如何生成二项式数的页面 ,但我认为它使用的是泊松生成的近似值,这对我没有帮助。 例如,考虑二项式随机数。 二项式随机数是硬币N次投掷中的头数,其中任意一次投掷的头部概率为p。 如果在区间(0,1)上生成N个均匀随机数并计算小于p的数,则计数是具有参数N和p的二项式随机数。 我知道有库可以做到这一点,但我不能使用它们,只能使用语言提供的标准统一生成器(在本例中为java)。