251、飞机座位分配概率
題目描述:
有 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
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
emm頭腦不夠用
沒想出來
1.動態規劃
很容易想到,如果第一個人正好坐在自己的位置,那么之后所有的人都會坐在自己的位置。
如果第一個人正好坐在第n個人的位置,那么第n個人沒可能坐在自己的位置。
如果第一個人坐在除了自己位置以及第n個人的位置之外的任何位置,情況就如同n-1個座位情況。
所以轉移方程為: dp[i] = 1 / i + (i - 2) / i * dp[i - 1]
var nthPersonGetsNthSeat = function(n) {
let dp = [0, 1];
for(let i = 2;i <= n;i++) {
dp[i] = (1 / i) + (dp[i - 1] * (i - 2) / i);
}
return dp[n];
};
2.數學法
上式通過數學歸納法發現
當n = 1時,概率為1,
其他情況,概率為0.5。
var nthPersonGetsNthSeat = function(n) {
if(n == 1) {
return 1;
}
return 0.5;
};
作者:virginiadb-Y0WqAUJ773
鏈接:https://leetcode-cn.com/problems/airplane-seat-assignment-probability/solution/dong-tai-gui-hua-fa-he-shu-xue-fa-by-virginiadb-y0/
來源:力扣(LeetCode)
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
這個解釋的比較詳細
總結
以上是生活随笔為你收集整理的251、飞机座位分配概率的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2007-2020年全国各省国有化程度数
- 下一篇: 黑马程序员-JAVA基础学习日志——通篇