计算400个瓷砖和50个物体的世界中至少2个重复的概率? Java的

时间:2013-09-13 16:26:29

标签: java probability birthday-paradox

首先,我想告诉你,我现在已经找了几天寻找答案,或者其他一些东西可能对我有所帮助,但我找不到任何东西,所以我在这里问。

我的Java代码:

50个物体的arraylist 随机X和Y元素放入arraylist中的每个对象 检查是否存在重复的方法。

所以基于重复的数量(不确定这个部分,但我认识的其他人似乎这样做)我需要计算在400个瓷砖的世界中至少有2个具有相同坐标的对象的概率/选择(20x20)。我的代码中还没有400个瓷砖的世界,但我必须通过思考来计算它。

在至少有重复的情况下,概率应该是0.95xx。

所以我知道我必须计算得到NO重复的可能性,并且:(1 - P(NoDupes))。但是我如何计算P(NoDupes)?

提前致谢

2 个答案:

答案 0 :(得分:1)

提示:将此问题视为一组400中的替换元素。 2-d坐标是一种分心。

然后计算1 - P(NO DUPES) - P(1 DUPE) - P(2 DUPES)

答案 1 :(得分:0)

读完这几次后,我想你所问的是:

给定20x20网格,插入50个随机点时至少会发生一次碰撞的概率是多少?

如果确实如此,那么提出答案的简单方法是通过以下逻辑:

第一个对象不能与任何东西碰撞,因为它是第一个。所以这里没有碰撞的机会是400/400 = 1 第二个对象只能与第一个对象发生碰撞。所以没有碰撞的机会是399/400 第三个对象可以与第一个或第二个对象发生碰撞。所以这里的机会是398/400 ...
第n个对象可以与之前的任何n-1个对象发生冲突。所以这里的机会是(400-(n-1))/ 400(或者如果n大于400,则机会只有0)。

n个物体不碰撞的可能性就是产品(400/400)(399/400)...((400-(n-1))/ 400)
当你正确地说1-P(无碰撞)时,至少有一次碰撞的可能性。