袋子中裝有n個紅球和m個藍球,a,b,c,三人依次抽取小球,若a抽到紅球則勝出,b抽到紅球則a失敗,c陪跑,純粹出來搗亂。但如果袋內紅球被抽完還未決斷勝負,則判定為b勝出。
求a勝出概率。
模擬抽球過程,採用遞迴的方式實現概率計算。
n, m =
(int
(x)for x in
input()
.split())
defprobability
(n, m, p)
:if n ==0:
#若沒有紅球,則勝率為0
return
0if m ==0:
#若沒有藍球,分情況判斷
if p ==
'a':
#該a抽,則勝出
return
1if p ==
'b':
#該b抽,則失敗
return
0if p ==
'c':
#該c抽,則判斷剩餘紅球數量
if n ==1:
#數量為1,則紅球被抽完,失敗
return
0else
:#數量不為1,則c抽完a抽,勝利
return
1if p ==
'a':
#若該a抽,條件概率計算如下
return n /
(n + m)
+ m /
(n + m)
* probability(n, m -1,
'b')
if p ==
'b':
#若該b抽,條件概率計算如下
return m /
(n + m)
* probability(n, m -1,
'c')
if p ==
'c':
#若該c抽,條件概率計算如下
return
(n /
(n + m)
)* probability(n -
1, m,
'a')
+(m /
(n + m)
)* probability(n, m -1,
'a')
win = probability(n, m,
'a')
#a開始抽
print
('%.5f'
%win)
通過率45%,遞迴超時,僅做參考 愛奇藝面試題
求字典序的最大子序 解題思路 例如乙個字串asdfghj,首先需要遍歷一遍字串,找到字典排序最大的s,然後接下來遍歷dfghj,找到最大的j。此時j是最後乙個字元,搜尋結束,字典排序最大的子字串即為sj。public static void main string args maxpos syste...
愛奇藝2019 校招筆試題 括號深度匹配
乙個合法的括號匹配序列有以下定義 1 空串 是乙個合法的括號匹配序列 2 如果 x 和 y 都是合法的括號匹配序列,xy 也是乙個合法的括號匹配序列 3 如果 x 是乙個合法的括號匹配序列,那麼 x 也是乙個合法的括號匹配序列 4 每個合法的括號序列都可以由以上規則生成。例如 都是合法的括號序列 對...
愛奇藝2019校園招聘演算法類崗位筆試題目回憶版本
第一種題型 不定項選擇 1 設hash表長為11,雜湊函式為hash key key 11。存在關鍵碼,採用二元探測法處理衝突,則建立的hash表為 解析 採用開放定址法處理衝突中的二次探測再雜湊 也即是題目中的二元探測法 則雜湊函式變為hash key hash key d 11,其中d 1 2,...