D. Drunk Passenger(数学概率)

2021 ICPC Asia Taiwan Online Programming Contest

题意

有n个人排队上飞机,我是第n个人,第一个人是醉汉,醉汉不坐自己的位置,占据他人的位置的概率相等。对于剩下的人,如果他的座位没有被占,他会做到自己的座位;否则,他会等概率的坐到空的位置。
问:我的位置(位置n)被占据的概率。

思路

参考题解
醉汉 1 2 3 ··· n - 3 n - 2 自己
以上是n个人:

  • 假设醉汉直接坐到了我的位置 p n = 1 n − 1 p_n = \frac1{n -1} pn=n11
  • 假设醉汉坐到了n-2:
    那么位于1 ~ n - 3 的人会坐到他们自己的位置,而位于n - 2的人会有两个选择,要是坐到醉汉的位置要么做到我的位置,所以我的位置被占据的概率为 p n − 2 = 1 n − 1 × 1 2 p_{n - 2} = \frac1{n -1} \times\frac 12 pn2=n11×21
  • 同理分析醉汉坐到位置 n - 3的时候:
    1 ~ n - 4的人按他们自己的位置坐,位置n - 3的人会有三个选择:醉汉的位置,位置n - 2,我的位置。
    假设n - 3坐到我的位置,我的位置被占据的概率为 1 3 \frac 13 31
    假设n - 3坐到醉汉的位置,那么n - 2会坐到他自己的位置,我的位置不会被占据。
    假设n - 3坐到n - 2的位置。轮到n - 2时,n - 2有两个选择,我的位置被占据的概率为 1 3 × 1 2 \frac13 \times\frac 12 31×21
    综上:醉汉坐到n - 3时,我的位置被占据的概率为:
    p n − 3 = 1 n − 1 × ( 1 3 + 0 + 1 3 × 1 2 ) = 1 n − 1 × 1 2 p_{n - 3} = \frac1{n -1} \times(\frac 13 + 0 +\frac13 \times\frac 12) \\= \frac1{n -1} \times\frac 12 pn3=n11×(31+0+31×21)=n11×21
  • 醉汉坐到n - 4时,按照上面的分析顺序:(最开始是我的座位,然后依次从前往后分析)
    p n − 4 = 1 n − 1 × ( 1 4 + 0 + 1 4 × 1 2 + 1 4 × 1 2 ) = 1 n − 1 × 1 2 p_{n - 4} = \frac1{n -1} \times(\frac14 + 0 + \frac14 \times \frac 12 + \frac14 \times \frac 12)\\ = \frac1{n -1} \times\frac12 pn4=n11×(41+0+41×21+41×21)=n11×21
  • 综上分析可得:
    无论醉汉坐到哪里:我的位置被占据的概率始终是 1 2 \frac 12 21(假设已知醉汉坐到的位置,且醉汉的坐的位置不是我的位置)。与此同时,醉汉在一开始不占据我的位置的情况下有n - 2个选择。
    p ( 我 的 位 置 被 占 据 ) = 1 n − 1 + ( n − 2 ) × 1 n − 1 × 1 2 = n 2 ( n − 1 ) p(我的位置被占据) = \frac1{n -1} +(n - 2)\times \frac1{n-1} \times \frac12 \\= \frac n{2(n - 1)} p()=n11+(n2)×n11×21=2(n1)n

代码

int main()
{
	int n; cin >> n;
	cout << setprecision(10) << n * 1.0 / (2 * n - 2) << endl;

	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

to cling

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值