algorithm - 球桶,如果我添加另一个球,一个桶会装满吗?

标签 algorithm math statistics probability

<分区>

我意识到标题有点奇怪。但这是一个我试图弄清楚的统计问题,但却被难住了。 (不不,这不是作业,真正的解释见底部)

前提很简单。你有 N 个桶。每个桶可以装 H 个球。没有一个桶是满的。你的桶里已经有 D 个球,但你不知道球在哪里(你忘了!)你随机选择一个桶来添加 1 个球。该桶装满的概率是多少。

一些可能的图表示例,其中 N = 4,H = 3,D = 4。每种情况都只是球的假设排列。对于许多情况之一。

Scenario 1: 1 bucket could be filled.
|   |   |   |   |
+ - + - + - + - +
| B |   |   |   |
+ - + - + - + - +
| B | B |   | B |
+ - + - + - + - +

Scenario 2: 2 buckets could be filled.
|   |   |   |   |
+ - + - + - + - +
|   | B | B |   |
+ - + - + - + - +
|   | B | B |   |
+ - + - + - + - +

Scenario 3: 0 buckets could be filled.
|   |   |   |   |
+ - + - + - + - +
|   |   |   |   |
+ - + - + - + - +
| B | B | B | B |
+ - + - + - + - +

问题是我需要一个形式为 P = f(N, H, D) 的通用方程


好的,您已经收听了这么多。这个数学问题背后的原因是我很好奇单位之间的大战。每个单位可以属于一个旅,该旅包含许多相同类型的单位。然而,随着时间的推移,战斗将缓慢进行。在战斗的每个阶段,状态都会被保存到数据库中。我不想保存每个单位和每个单位的每个生命值,而是想保存旅的单位数量和总伤害。当一个旅受到伤害时,f(N, H, D) 被运行并返回一个 % 的机会,该旅中的一个单位被摧毁(它的所有 HP 都用完了)。然后从旅中移除该单位,N 递减 1,D 递减 H。

在你对这个想法发起过多批评之前。请记住,如果你有 VAST VAST 大型军队,这种信息无法有效地存储在小型 DB 中,并且由于 Web 的限制,我无法同时将所有单位的数据保存在内存中。不管怎样,谢谢你的想法。

最佳答案

我相信这可以归结为第一个桶装 H-1 个球的概率(因为你的概率实际上是你选择要将球放入的桶有 H-1 个球的概率。 我猜这应该可以用组合学来解决,但这不是我的强项。

附带说明:这不是统计问题,而是概率问题。

关于algorithm - 球桶,如果我添加另一个球,一个桶会装满吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5741854/

相关文章:

java - 如何在没有错误 ArrayIndexOutOfBoundsException 的情况下实现具有 4 向分区的合并排序算法?

python - 查找子字符串在较大字符串中的位置

math - 如何使用 ir 登录

Oracle 向下舍入

java - 用曼哈顿距离模式填充二维数组

algorithm - Swift 4 中映射字符串数组的枚举和 Switch 语句

mysql - 求给定数字的总和

oracle - 执行用户定义的统计函数时如何提高 Oracle 性能?

r - 为长数据库进行宽变换,在 R 中对变量进行分组

python - 检索 y 轴截距的标准差