LeetCode 1227. 飞机座位分配概率(DP+数学归纳法)

1. 题目

有 n 位乘客即将登机,飞机正好有 n 个座位。第一位乘客的票丢了,他随便选了一个座位坐下。

剩下的乘客将会:

  • 如果他们自己的座位还空着,就坐到自己的座位上,

  • 当他们自己的座位被占用时,随机选择其他座位

第 n 位乘客坐在自己的座位上的概率是多少?

示例 1:
输入:n = 1
输出:1.00000
解释:第一个人只会坐在自己的位置上。示例 2:
输入: n = 2
输出: 0.50000
解释:在第一个人选好座位坐下后,第二个人坐在自己的座位上的概率是 0.5。提示:
1 <= n <= 10^5

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/airplane-seat-assignment-probability
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

在这里插入图片描述

1个人,1
2个人,0.5
n个人,分情况讨论,假设n个座位最后一个人坐自己的座位的概率为 f(n)f(n)f(n)

  • 1、第一个人在自己位置,最后一个人在自己位置概率概率:1n∗1\frac{1}{n}*1n11
  • 2、第一个人在最后一个人的位置,最后一个人在自己位置概率概率:1n∗0\frac{1}{n}*0n10
  • 3、第一个人在 2~n-1 号位置,最后一个人在自己位置概率概率:n−2n∗f(n−1)\frac{n-2}{n}*f(n-1)nn2f(n1)
  • 所以加起来,f(n)=1n+n−2n∗f(n−1)f(n) = \frac{1}{n}+\frac{n-2}{n}*f(n-1)f(n)=n1+nn2f(n1)
  • 数学归纳法证明,f(n)=0.5,n≥2f(n)=0.5,n\ge 2f(n)=0.5,n2
  • f(n+1)=1n+1+n+1−2n+1∗f(n)=1n+1+n+1−2n+1∗12=2+n+1−22∗(n+1)=12f(n+1) = \frac{1}{n+1}+\frac{n+1-2}{n+1}*f(n) = \frac{1}{n+1}+\frac{n+1-2}{n+1}*\frac{1}{2}=\frac{2+n+1-2}{2*(n+1)}=\frac{1}{2}f(n+1)=n+11+n+1n+12f(n)=n+11+n+1n+1221=2(n+1)2+n+12=21,得证

  • 不用数学归纳法,可以由 f(n)=1n+n−2n∗f(n−1)f(n) = \frac{1}{n}+\frac{n-2}{n}*f(n-1)f(n)=n1+nn2f(n1)
  • 容易得到 nf(n)+∑i=1n−1f(i)=nnf(n) + \sum\limits_{i = 1}^{n-1}f(i) = nnf(n)+i=1n1f(i)=n
class Solution {
public:double nthPersonGetsNthSeat(int n) {double fn = 1.0, sum_f_i = 1.0;for (int i = 2; i <= n; ++i) {fn = 1 - sum_f_i/i;sum_f_i += fn;}return fn;}
};

24 ms 6 MB

class Solution {
public:double nthPersonGetsNthSeat(int n) {return n==1 ? 1.0 : 0.5;}
};

0 ms 5.8 MB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

应广单片机adc_应广PMC232系列单片机 12位ADC PWM LCD 双核心8位MCU

PMC232系列 台湾应广 一级代理 现货批发 长期供应带12位ADC、采用FPPATM技术、双核心8位单片机PMC232为P232的升级版&#xff0c;内部基准电压更准&#xff0c;节省TL431。工作电压更宽&#xff0c;功耗更低&#xff0c;可用于移动式手持设备。引入单一FPPA运作模式&#xff0c…

网络动态负载均衡算法分析

转自CSDN博客&#xff1a;http://blog.csdn.net/wallacexiang/archive/2009/07/24/4376147.aspx   随着Internet的日益普及&#xff0c;无论在企业网、园区网还是在广域网如Internet上&#xff0c;用户与业务量呈现出指数性增长&#xff0c;尤其是在网络的关键节点和核心网络…

pymysql连接以及连接池的理解

mysql连接 1. 不使用连接池 我们知道使用pymysql连接数据库一般需要下面的步骤: 创建连接对象(一般使用connect或者是连接池) 创建游标对象 使用游标执行代码 使用游标获取结果并返回 # 返回的是元组(每个实例一个元组)! 关闭游标和连接 conn pymysql.connect(host, p…

LeetCode 1025. 除数博弈(动态规划)

1. 题目 爱丽丝和鲍勃一起玩游戏&#xff0c;他们轮流行动。爱丽丝先手开局。 最初&#xff0c;黑板上有一个数字 N 。在每个玩家的回合&#xff0c;玩家需要执行以下操作&#xff1a; 选出任一 x&#xff0c;满足 0 < x < N 且 N % x 0 。用 N - x 替换黑板上的数字…

python iterator iterable_Python中Iterator和Iterable的区别

python中list, str&#xff0c;truple, dict都是可以被迭代的&#xff0c;但他们不是迭代器。why?list/truple/map/dict这些数据的大小是确定的&#xff0c;我们可以准确知道他们的size。迭代器不知道要执行多少次&#xff0c;所以可以理解为不知道有多少个元素&#xff0c;每…

javascript之嵌套函数

在javascript中允许使用嵌套函数: <head><meta http-equiv"Content-Type" content"text/html; charsetgb2312" /><title>嵌套函数</title><script type"text/javascript"> function fun1(){ function fun…

BN / LN / IN / GN /

链接 但是代码不敢苟同! 所以自己写了两种代码! 由于这只是测试, 并不是用来训练, 所以α和β参数就没有加! def BN(inputs):c inputs.shape[1]for i in range(c):channel inputs[:,i,:,:]mu np.mean(channel)var np.var(channel)channel_new ((channel - mu)/(np.sqrt(…

LeetCode 672. 灯泡开关 Ⅱ(枚举)

1. 题目 现有一个房间&#xff0c;墙上挂有 n 只已经打开的灯泡和 4 个按钮。 在进行了 m 次未知操作后&#xff0c;你需要返回这 n 只灯泡可能有多少种不同的状态。 假设这 n 只灯泡被编号为 [1, 2, 3 …, n]&#xff0c;这 4 个按钮的功能如下&#xff1a; 1将所有灯泡的状…

安卓手机绘制uml图_Android Studio中绘制simpleUML类图详细说明及使用

一、Android Studio中安装simpleUML1、下载simpleUML jar包2、 添加simpleUMLCEjar包File--->Settings--->Plugins--->Install Plugin from disk,如下图&#xff1a;3、安装完成后重启AndroidStudio二、使用在某个类或module上右击&#xff0c;选择Add to simpleUML D…

ExtJs非Iframe框架加载页面实现

在用Ext开发App应用时&#xff0c;一般的框架都是左边为菜单栏&#xff0c;中间为tab页方式的显示区域。而tab页面大多采用的嵌入一个iframe来显示内容。但是采用iframe方式有一个很大的弊端就是每次在加载一个新的iframe时都要将Ext的核心js&#xff0c;css文件重新加载。由于…

LeetCode 873. 最长的斐波那契子序列的长度(动态规划)

文章目录1. 题目2. 解题2.1 暴力解2.2 动态规划1. 题目 如果序列 X_1, X_2, ..., X_n 满足下列条件&#xff0c;就说它是 斐波那契式 的&#xff1a; n>3n > 3n>3对于所有 i2<ni 2 < ni2<n&#xff0c;都有 XiXi1Xi2X_i X_{i1} X_{i2}Xi​Xi1​Xi2​ 给…

中文验证码 php_还在苦恼验证码怎么实现?看看这个验证码组件合集,你想要的都有...

随着安全性的要求越来越高&#xff0c;如今的验证码已经不再是简单的四个数字或者字母了&#xff0c;更复杂的图形验证码和行为验证码已经成为了更流行的趋势&#xff0c;但更难的实现也让很多开发者头秃&#xff0c;Gitee 已经替你们想到了这一点。不多说了&#xff0c;下面这…

SessionState详解

<sessionState> 元素 配置当前应用程序的会话状态设置。 配置结构的示例&#xff1a; <configuration> <system.web> <sessionState> <sessionState mode"Off|InProc|StateServer|SQLServer" cookieless"true…

reload端口 tomcat_tomcat上部署网站的三种方式

一、利用webapps文件夹自动部署这是最简单的方式&#xff0c;只要将网站直接拷贝到&#xff1a;tomcat根目录下的webapps文件夹里举例&#xff1a;helloworld文件夹下创建里index.html文件&#xff0c;然后把helloworld文件夹移动到tomcat根目录下webapps文件夹里&#xff0c;重…

LeetCode 1095. 山脉数组中查找目标值(二分查找)

1. 题目 给你一个 山脉数组 mountainArr&#xff0c;请你返回能够使得 mountainArr.get(index) 等于 target 最小 的下标 index 值。 如果不存在这样的下标 index&#xff0c;就请返回 -1。 何为山脉数组&#xff1f;如果数组 A 是一个山脉数组的话&#xff0c;那它满足如下…

不能用蛮力法解决的问题_溆浦事蒙汉:脱贫攻坚绝不能心浮气躁骄傲自满疲倦厌战...

脱贫攻坚绝不能心浮气躁骄傲自满疲倦厌战——蒙汉到卢峰镇检查“四支队伍”集村部工作情况检查南华山村“四支队伍”集村部工作情况与大潭村贫困户舒采米座谈红网溆浦讯(记者 伍交才)8月28日&#xff0c;市人大常委会副主任、县委书记蒙汉到卢峰镇南华山村、大潭村检查“四支队…

Oracle 性能调优 概述

在过去的十年中&#xff0c; Oracle 已经成为世界上最专业的数据库之一。对于 IT 专家来说&#xff0c;就是要确保利用 Oracle 的强大特性来提高他们公司的生产力。最有效的方法之一是通过 Oracle 调优。它有大量的调整参数和技术来改进你的 Oracle 数据库的性能。 Oracle 调优…

LeetCode 801. 使序列递增的最小交换次数(动态规划)

1. 题目 我们有两个长度相等且不为空的整型数组 A 和 B 。 我们可以交换 A[i] 和 B[i] 的元素。注意这两个元素在各自的序列中应该处于相同的位置。 在交换过一些元素之后&#xff0c;数组 A 和 B 都应该是严格递增的&#xff08;数组严格递增的条件仅为A[0] < A[1] <…

mock模拟接口测试 vue_vue+mock.js实现前后端分离

之前都是介绍在普通项目中使用mock.js&#xff0c;那么本次就来介绍一下在vue中使用mock.js实现前后端分离。安装&#xff1a;npm install mockjs这里先写个小案例介绍一下具体使用&#xff0c;写法不规范&#xff0c;仅供参考。然后案例讲完后我们讲具体的规范使用那么一起来看…

进一步的去了解正则[一]

1 正则是什么. 请先看 http://www.phpchina.com/html/11/n-34811.html 几k 的解释后. 原地址已被更改&#xff0c;重新找了一个教程&#xff0c;请点击。 http://deerchao.net/tutorials/regex/regex.htm2 实例剖析.1. $str <FORM NAME"ADFA" ACTION"AS…