gpt4 book ai didi

java - 如何在 n 个敌人上生成 k 次射击的分布

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:48:47 25 4
gpt4 key购买 nike

我正在用 Java 开发一款太空战斗游戏,这是我不断学习这门语言的一部分。在一场战斗中,我有 k 艘船向他们的邪恶敌人的 n 舰队开火。取决于有多少敌人被多少次射击击中(每艘船发射一枪击中一个敌人),一些会被损坏,一些会被摧毁。我想计算出有多少敌人被击中一次,有多少敌人被击中两次等等,所以最后我有一个看起来像这样的表格,用于发射 100 发子弹:

Number of hits | Number of occurences | Total shots
----------------------------------------------------
1 | 30 | 30
2 | 12 | 24
3 | 4 | 12
4 | 7 | 28
5 | 1 | 5

显然,我可以通过将每次射击随机放置在一个敌人身上,然后计算最后每次射击的次数,对少量射击和敌人进行暴力破解。但是,如果我有 300 万勇敢的英雄向 1000 万敌人开火,这种方法将非常不切实际。

理想情况下,我想要一种方法来生成有多少敌人可能会被正好一定数量的射击击中的分布。然后我可以使用随机数生成器在该分布上选择一个点,然后重复此过程,每次增加命中数,直到几乎所有镜头都被考虑在内。是否有一般的统计分布/方法来估计大约有多少敌人被多少次射击击中?

我一直试图从生日问题中找出一些东西来计算出恰好有多少人生日相同的概率,但没有取得任何重大进展。

我将用 Java 实现它。

编辑:我发现了一个可能更容易解决的简化:n 个敌人根本没有被击中的概率分布是什么? IE。 0个没命中、1个没命中、2个没命中等的概率是多少。

这是一个类似的问题,(好吧,同样的问题,但进行了简化),但看起来它可能更容易解决,并且可以让我在几次迭代中生成完整的分布。

最佳答案

你应该看看multinomial distribution , 将其限制为所有 pi 都等于 1/k 的情况(注意维基百科文章交换了你的 kn)。


先前的回答尝试

也许像下面这样的方法会富有成效:

  1. 特定船只被特定射击击中的概率为 1/n
  2. 给定船只在 k 次射击后恰好被击中一次的概率:h1 = 1/n (1-1/n)k-1 ;
  3. 如上,但正好两次:h2 = (1/n)2 (1-1/n)k-2,等等;
  4. 恰好命中一次的预期船只数量:n h1 等等。

关于java - 如何在 n 个敌人上生成 k 次射击的分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16444672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com