<分区>
我意识到标题有点奇怪。但这是一个我试图弄清楚的统计问题,但却被难住了。 (不不,这不是作业,真正的解释见底部)
前提很简单。你有 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 的限制,我无法同时将所有单位的数据保存在内存中。不管怎样,谢谢你的想法。