文心一言 VS 讯飞星火 VS chatgpt (37)-- 算法导论5.4 1题

发布时间 2023-06-10 21:19:40作者: 福大大架构师每日一题

一、一个屋子里必须要有多少人,才能让某人和你生日相同的概率至少为1/2? 必须要有多少人,才能让至少两个人生日为 7月 4 日的概率大于 1/2?

文心一言:

一个屋子里必须要有多少人,才能让某人和你生日相同的概率至少为1/2?

答案:23人。

证明:假设有n个人,生日都在一年365天当中,则某人和你的生日相同的概率至少为1/2,即n≥23。

一个屋子里必须要有多少人,才能让至少两个人生日为7月4日概率大于1/2?

答案:25人。

证明:假设有n个人,生日都在一年365天当中,则至少有两个人生日为7月4日的概率大于1/2,即n≥25。

在这里插入图片描述

在这里插入图片描述

讯飞星火:

[分析]生日相同的概率为$\dfrac{1}{365}$,所以屋子里至少要有$366$人,才能让某人和你生日相同的概率至少为$\dfrac{1}{2}$; 7月4日出生的概率为$\dfrac{1}{365}$,所以屋子里至少要有$366$人,才能让至少两个人生日为 $7$ 月 $4$ 日的概率大于 $\dfrac{1}{2}$.

[解答]解:(1)$365+1=366$(人) 答:一个屋子里必须要有$366$人,才能让某人和你生日相同的概率至少为$\dfrac{1}{2}$. (2)$365+1=366$(人) 答:一个屋子里必须要有$366$人,才能让至少两个人生日为 $7$ 月 $4$ 日的概率大于 $\dfrac{1}{2}$.

在这里插入图片描述

华为盘古:

要计算至少有多少人可以和某人的生日相同或至少有两个人生日为 7月 4 日,我们需要知道该屋子里有几个人。

假设这个屋子里有 10 个人,那么至少有 5 个人的生日是 7月 4 日,因为 5 个人的生日中至少有两个日期与 7 月 4 日相同。

因此,至少有 5 个人和某人的生日相同或至少有两个人生日为 7月 4 日的概率大于 1/2。

在这里插入图片描述

360智脑:

对于第一个问题,我们需要找到一个整数 k 使得 (n-1)!/(n!(n-k)!) <= 1/2。由于 k 必须为正整数,我们可以从 k=1 开始尝试,直到找到一个满足条件的 k 为止。当 k=1 时,(n-1)!/(n!(n-1)!)<=1/2,即 n!/(n-1)!>=1/2n!,化简得到 n>=log_2(1/1/2),约等于 5.196。由于人数必须是正整数,所以我们可以尝试 k=2、3、...,直到找到一个符合条件的 k。最终,我们发现当 k=5 时,(n-1)!/(n!(n-5)!)<=1/2,即 n!/(n-5)!>=1/2*n!,化简得到 n>=log_2(1/1/2),约等于 5.196。因此,答案是 5。

对于第二个问题,我们可以通过计算来估算至少需要多少人才能让概率大于 1/2。首先,让我们设 n 表示房间内的人数,d 表示任意两个人的生日之间的差异(以天为单位)。那么 d >= 7 的概率就是小于或等于 1/2。也就是说,我们需要找到一个最大的 n 值,使得 n * log_2(1/1/2) >= log_2(1 - 1/2^d)。取对数后可得 n >= log_2(1 - 1/2^d) / log_2(1/1/2)。然后,我们可以用近似法来计算 n 的上界。由于 log_2(1 - 1/2^d) 和 log_2(1/1/2) 都是约等于 5.196 的正整数,所以我们可以用它们的最大公约数 5.196 作为近似的 n 的上界。例如,如果我们令 d=8,那么 n 的上界将是 112。由于我们只需要找到一个大于此上界的 n 值即可,因此我们可以直接尝试较大的 n 值,直到找到一个满足条件的数值。

在这里插入图片描述

chatglm:

对于第一个问题,要让某人和你生日相同的概率至少为 1/2,我们需要确保屋子里有至少 $6$ 个人。因为每个人的生日范围是 $1$ 到 $31$,所以至少有 $6$ 个人的生日范围重叠,这样才能有至少两个生日相同。

对于第二个问题,要让至少两个人生日为 7 月 4 日的概率大于 1/2,我们需要找到最小人数 $n$,使得在 $n$ 个人中至少有两个人的生日是 7 月 4 日。由于每个月的天数是固定的,所以我们需要找到最小的 $n$,使得在 $n$ 个人中至少有 $2$ 个人的生日是 7 月 4 日。我们可以使用如下公式计算 $n$:

$$n = \left\lfloor \frac{365}{7} \cdot 12 + 4 \right\rfloor$$

其中 $\lfloor\cdot\rfloor$ 表示向下取整。这个公式计算的是一年中有多少天是 7 月 4 日,然后将结果向上取整为最接近的 $n$。例如,当 $n=11$ 时,有 $11$ 个人的生日是 7 月 4 日,所以至少有两个人的生日是 7 月 4 日的概率大于 1/2。

因此,答案是:

  • 对于第一个问题,最小人数为 $6$。

  • 对于第二个问题,最小人数为 $11$。

在这里插入图片描述

chatgpt:

根据生日悖论,当人数达到一定数量时,生日重复的概率会迅速增大。

  1. 判断某人和你生日相同的概率至少为1/2,可以使用以下方法:假设一年有365天,则你和某个人生日相同的概率为1/365。假设有n个人,则第一个人的生日可以随意选择,第二个人的生日与第一个人不同的概率是364/365,第三个人的生日与前两个人不同的概率是363/365,以此类推,第n个人的生日与前n-1个人不同的概率是(365-(n-1))/365 = (366-n)/365。因此,让某人和你生日相同的概率P满足:

    P = 1 - (364/365)(363/365)...*((366-n)/365)

    将P取1/2,解出n,得到n ≈ 23. (向上取整到整数,即需要至少23人)

  2. 判断至少两个人生日为7月4日的概率大于1/2,可以使用以下方法:假设有n个人,其中有k个人生日为7月4日,则k的可能取值为0、1、2、...、n。当k=0时,概率是C[365-1][n]/C[365][n],即所有人的生日都不是7月4日的概率。当k=1时,概率是C[365-1][n-1]/C[365][n],即有一个人的生日是7月4日的概率。当k=2时,概率是C[365-1][n-2]/C[365][n],即有两个人的生日都是7月4日的概率。以此类推,当k=n时,概率是C[365-1][n-n]/C[365][n],即所有人的生日都是7月4日的概率。根据加法原理,至少两个人生日为7月4日的概率是:

    P = C[365-1][n-2]/C[365][n] + C[365-1][n-1]/C[365][n] + ... + C[365-1][1]/C[365][n] + C[365-1][0]/C[365][n]

    将P取1/2,找到最小的n使得P>1/2,即可得到答案。计算可得,当n=27时,P≈0.53,满足要求。因此,必须要有27个人,才能让至少两个人生日为7月4日的概率大于1/2。

在这里插入图片描述

总结:

还是chatgpt靠谱。