大家好! 最近,我对以下问题感兴趣:“我的世界中有2位玩家拥有同一个世界吗?”
事实是,《我的世界》世界是从给定种子随机生成的。 它可以手动设置,也可以由政府伪随机接收。 值得注意的是,相同的种子产生了相同的世界。
该游戏非常受欢迎,因此不可能直接采访所有玩家并比较他们的单身世界。 但是,我们总是可以计算出此事件的概率。 似乎:我们所需要做的就是计算满足此事件的基本结果的数量,并将其划分为所有基本结果的集合。 不幸的是,这是一项非常艰巨的任务,因此我想起了“生日悖论”。
矛盾的是,在一个23人的小组中,有50%的概率是两个人的生日相吻合。 显然,任务类似于我们的任务。 如何解决的? 非常简单:事实证明,计算组中每个人有一个独特生日的可能性要容易得多。 为此,请一个人记住他的生日,然后第二个生日,他的一天与第一个生日不一致的概率将相等
$$显示$$ p_2 = 1- \ frac {1} {365} $$显示$$
即 100%减去其生日相同的可能性。 我们以第三个为例,考虑他的生日与前两个生日不一致的可能性
$$显示$$ p_3 = 1- \ frac {2} {365} $$显示$$
依此类推,直到第n个人
$$显示$$ p_n = \ frac {n-1} {365} $$显示$$
然后是没有人匹配的概率
$$显示$$ p = 1 *(1- \ frac {1} {365})*(1- \ frac {2} {365})* ... *(1- \ frac {n-1} { 365})$$显示$$
以及至少2个匹配项的概率
$$ display $$ p_ {search} = 1-p $$ display $$
仍然仅将这种解决方案应用于我们的案例。 我的世界只有2 ^ 64个可能的种子,大约有2亿玩家。 所以我们的公式看起来
$$ display $$ p = 1 *(1- \ frac {1} {2 ^ {64}})*(1- \ frac {2} {2 ^ {64}})* ... *(1- \ frac {2 * 10 ^ 8} {2 ^ {64}})$$显示$$
手动计数非常耗时,所以我写了一个小Python 3程序来代替我。

如果有人感兴趣,这里是程序代码,但是非常简单。
a = 2**64 n = 200000000 p = 1 for i in range(n): p *= (1 - i/a) print('Chance that 2 players of minecraft have the same seed: ' + str((1-p)*100) + '%')
结果是0.1%,顺便说一句,考虑到可能的种子数量,这是很多。
感谢您的关注!
参考文献:
生日悖论有多少人玩我的世界我的世界有多少种子