TOP
雪糕
家族: 没有家族
生日悖论是说:如果一个房间里有23个人,那么两个人有相同生日的概率要大于50%。这就意味着这个悖论有更高的概率适用于一个典型的标准小学班级(30人)。对于60或者更多的人,这种概率要大于99%。 从引起逻辑矛盾的角度来说生日悖论并不是一种悖论,这一悖论在某种意义上是反驳一般直觉数学事实。大多数人猜测,机会应该远远小于50%。 计算与此相关的概率被称为生日问题,隐藏在它后面的数学理论已被用于设计著名的密码攻击方法:生日攻击。 对此悖论的解释:理解生日悖论的关键在于领会相同生日的搭配可以是相当多的。如在前面所提到的例子,23个人可以产生23×22÷2=253 种不同的搭配,而这每一种搭配都有成功相等的可能。从这样的角度看,在253种搭配中产生一对成功的配对也并不是那样的不可思议。 换一个角度,如果你进入了一个有着22个人的房间,房间里的人中会和你有相同生日的概率便不是50:50了,而是变得非常低。原因是这时候只能产生22种不同的搭配。生日问题实际上是在问:任何23个人中会有两人生日相同的概率是多少?
Birthday Paradox - 生日悖论 初级或然率(机率)与统计学课程里,最为人津津乐道的就是生日问题 (Birthday Problem):探讨 N 个人里,随便选两个人,生日是同一天的机率问题 (同月同日,但不见得要同年)。 第二个课题就是:N 个人里的 N 要有多大,才能让机率高於 50% 呢? 答案是 23,这样的数字,小到让人觉得不可思议。基於此,我们常称此为生日悖论 (Birthday Paradox;也有人称「生日矛盾」)。 这个理论假定有两个前提: 1. 没有人的生日是二月二十九。 2. 每个人的生日乃平均分散於一年的 365 天内。 此问题首先要提到的就是先解决互补问题 (complementary problem),这也是比较简单的一部份:随便选,要选几个人是生日完全不同的? 我们可以把它写成一个递回函数 (recursive function): double different_birthdays(int n) { return n == 1 ? 1.0 : different_birthdays(n-1) * (365.0-(n-1))/365.0; } 显然,N = 1 的机率为 1,N>1 的机率则有两种结果: 1. 前 N-1 个人拥有完全不同的生日。 2. 第 N-th 个人的生日与前 N-1 个人不同。 展现此机率的程式可能长得像这样: void main(void) { int n; for (n = 1; n <= 365; n++) printf("%3d: %e\n", n, 1.0-different_birthdays(n)); } 产生结果如下: 1: 0.000000e+00 2: 2.739726e-03 3: 8.204166e-03 4: 1.635591e-02 5: 2.713557e-02 *** 20: 4.114384e-01 21: 4.436883e-01 22: 4.756953e-01 23: 5.072972e-01 24: 5.383443e-01 25: 5.686997e-01 *** 结论则为,在 N 个人里,至少有两个人拥有相同生日,其机率大於 0.5 者,N 为 23。
查看详细资料
Seraちゃん
雪花
家族: 小说大家族 - 部长
このみちゃんのこと大好きです
沙沙(sasade)
雪块
家族: 飞雪萌工坊 - 鬼隐ing...
神道萌心流
查看个人网站
永远只爱鱼酱
雪人
千面= =||??
当前时区 GMT+8, 现在时间是 2024-11-23 21:47
Processed in 0.015275 second(s), 5 queries.
Web analytics