有 n 位乘客即將登機,飛機正好有 n 個座位。第一位乘客的票丟了,他隨便選了乙個座位坐下。
剩下的乘客將會:
如果他們自己的座位還空著,就坐到自己的座位上,
當他們自己的座位被占用時,隨機選擇其他座位
第 n 位乘客坐在自己的座位上的概率是多少?
示例 1:
輸入:n = 1
輸出:1.00000
解釋:第乙個人只會坐在自己的位置上。
示例 2:
輸入: n = 2
輸出: 0.50000
解釋:在第乙個人選好座位坐下後,第二個人坐在自己的座位上的概率是 0.5。
1 <= n <= 10^5
一看到這種題就是要數學分析
搞個函式f(n),很明顯有三種情況
0.5f(n-i+1)
我們分析f(n-i+1),發現有
f(n)
= 1/n + 0 + 1/n * (f(n-1) + f(n-2) + ... + f(2))
= 1/n * (f(n-1) + f(n-2) + ... + f(2) + 1)
= 1/n * (f(n-1) + f(n-2) + ... + f(2) + f(1))*****(1)
f(n-1) = 1/(n-1) * (f(n-2) + f(n-3) + ... + f(1))*****(2)
(1) ,(2) 兩邊分別同乘 n 和 n - 1
n * f(n) = f(n-1) + f(n-2) + f(n-3) + ... + f(1)******(3)
(n-1) * f(n-1) = f(n-2) + f(n-3) + ... + f(1)******(4)
(3)-(4)得
n * f(n) - (n-1)*f(n-1) = f(n-1)
=>f(n)=f(n-1)
這就爽了
classsolution:
def nthpersongetsnthseat(self, n: int) ->float:
return 1 if n==1 else .5
飛機座位分配概率
題目描述 有 n 位乘客即將登機,飛機正好有 n 個座位。第一位乘客的票丟了,他隨便選了乙個座位坐下。剩下的乘客將會 如果他們自己的座位還空著,就坐到自己的座位上,當他們自己的座位被占用時,隨機選擇其他座位 第 n 位乘客坐在自己的座位上的概率是多少?思路分析 1.第乙個乘客正確坐到第乙個位置,概率...
leetcode演算法題 飛機座位分配概率
假設有n個人,即n個座位,當第1個人入座時有三種情況 坐在第1位,2 n都正常入座 坐在第n位,2 n 1都正常入座,n坐在第1位 坐在第2 n 1位,此時後面的座位會受到影響 情況1和情況2出現的概率為1 n,情況3出現的概率為 n 2 n 對於情況3,假設第1人坐在第2位上,則其實對於第2個人來...
1227 分巧克力
兒童節那天有 k 位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友們。小明一共有 n 塊巧克力,其中第 i 塊是 hi wi 的方格組成的長方形。為了公平起見,小明需要從這 n 塊巧克力中切出 k 塊巧克力分給小朋友們。切出的巧克力需要滿足 形狀是正方形,邊長是整數 大小相同 例如一塊 6 5...