飞机选座 --- 一道可用动态规划解决的概率问题

本文介绍了LeetCode 1227题,讨论了一道关于飞机选座的概率问题。通过分析三种情况,利用动态规划的思想解决问题。思路包括将问题逐步简化,考虑不同乘客上飞机的顺序,最终得出概率的计算方式,并提供了代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目

该题是中文网站的 LeetCode 的 1227题,题目如下:
在这里插入图片描述

思路

自己想的情况还是有欠缺的地方,最后是看题解后总结出来的,记录一下。

思路1:

假设第一位没票的客人先上飞机,整体分3种情况:

  • 1.第一位客人选的是他本来应该座的位置,其他人都有票,对号入座即可。
    第 n 位乘客坐在自己的座位上的概率是: 1 / n * 1。

  • 2.第一位客人选的是第n位客人的位置,这样第n位客人无论无何都座不到自己本来的位置。
    第 n 位乘客坐在自己的座位上的概率是: 1 / n * 0。

  • 3 第一位客人即没选本来应该的位置,也没选第n位客人应该座的位置。那这种情况下 第2位到第n-1位客人肯定有1个人的位置是被第1位客人座了,设这个人是第i位客人。
    那这时第i位客人的选择也会影响到第n位客人是否能做到自己本来的位置,情况也是以上分析的3种情况。
    我们可以这样想:
    把第i位客人当着这轮的“第1位客人”来看待,整个座位的个数是n-1个。也就是把问题的范围缩小了,由原来的n个人,缩小到现在的n-1人。
    先暂且假设知道这时候 “第 i 位乘客坐在自己的座位上的概率” 是dp[n-1]。
    所以: 这第3种情况下:第 n 位乘客坐在自己的座位上的概率是ÿ

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值