日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

【Java】LeetCode 1227. 飞机座位分配概率——数学好一行解决

發布時間:2024/1/18 java 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Java】LeetCode 1227. 飞机座位分配概率——数学好一行解决 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有 n 位乘客即將登機,飛機正好有 n 個座位。第一位乘客的票丟了,他隨便選了一個座位坐下。
剩下的乘客將會:
如果他們自己的座位還空著,就坐到自己的座位上,
當他們自己的座位被占用時,隨機選擇其他座位
第 n 位乘客坐在自己的座位上的概率是多少?
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/airplane-seat-assignment-probability
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

乍一看應該想到:對于第一個人有三種可能:

①坐上自己的座位,那么之后每一個人都能坐到自己的座位上

②坐上2~n-1內的座位上(假設為x號),那么x之前的所有人都能坐上自己的座位,x號隨機坐,此時轉化為N=n-x+1的問題

③直接坐上n的位置,n沒有位置坐

因此,我們可以從n=2開始計算,存儲之前所有答案即可

要注意的是,雖然n=1時答案為1,但是存儲的答案應該為0,因為除了n號外的人坐上座位都會使得n號坐不上n座位

對于n=2,顯然概率為1/2

對于n=n呢? 概率應該為 (1/n)*1 (坐上自己位置)+(1/n)*P(n-1) (坐上2號位置,變成n-1人問題)+(1/n)*P(n-2) (坐上2號位置,變成n-2人問題) …+(1/n)*0 (坐上n號位置,直接gg)

即P(n)=(1/n)*1+(1/n)(P(n-1)+P(n-2)…+P(1))

有思路了就,寫!

等等!

稍微算了兩個,在P(1)=0,P(2)=1/2的情況下,P(3)P(4)也都等于1/2

是不是,除了P(1)都等于1/2呢?

用數學歸納法其實很好證明,

在2~n-1時P等于1/2 1時P等于0的前提下,帶入以上通式可以得到P(n)就正好等于1/2!!!

而P(1)=0,P(2)=1/2

class Solution {public double nthPersonGetsNthSeat(int n) {if(n==1){return 1;}else{return 0.5;}} }

說好的一行呢?

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


總結

以上是生活随笔為你收集整理的【Java】LeetCode 1227. 飞机座位分配概率——数学好一行解决的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。