leetcode演算法題 飛機座位分配概率

2021-10-05 14:51:52 字數 478 閱讀 4881

假設有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個人來說,此時問題規模為n-1(1和3 ~ n),其實分析後發現,當2坐在第1位時,3 ~ n都會正常入座,和第1位本來就是2的座位效果相同。那麼我們如果把座位1看做本來就是2的座位,那麼情況就變成了問題規模為n-1的原問題了,於是有遞推式:

f(n)

=1/n+(n-2)/n*f(n-1)

由遞推式我們可以寫出遞迴**:

double

nthpersongetsnthseat

(int n)

飛機座位分配概率

題目描述 有 n 位乘客即將登機,飛機正好有 n 個座位。第一位乘客的票丟了,他隨便選了乙個座位坐下。剩下的乘客將會 如果他們自己的座位還空著,就坐到自己的座位上,當他們自己的座位被占用時,隨機選擇其他座位 第 n 位乘客坐在自己的座位上的概率是多少?思路分析 1.第乙個乘客正確坐到第乙個位置,概率...

1227 飛機座位分配概率

有 n 位乘客即將登機,飛機正好有 n 個座位。第一位乘客的票丟了,他隨便選了乙個座位坐下。剩下的乘客將會 如果他們自己的座位還空著,就坐到自己的座位上,當他們自己的座位被占用時,隨機選擇其他座位 第 n 位乘客坐在自己的座位上的概率是多少?示例 1 輸入 n 1 輸出 1.00000 解釋 第乙個...

LeetCode 演算法題

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...