至於程式碼解題方面,可以用這些套件:
from fractions import Fraction
from collections import Counter
Fraction可以解決算分數的問題,並且會自動約分至最簡分數。
Counter則可以用來解決個數小於0的時候該怎麼辦,
不僅可以利用[+counter]去除小於0的項目,
以及counter['x']提取時萬一沒有'x'的key,會自動產生0
再來就是計算機率,計算的時候大概會長這樣
10/12 * 9/11 = 15/22
被罵的機率 = 1 - 15/22 = 7/22
分子會是'圖案'可以取用的個數,分母會是從所有圖案加總的個數依序遞減1。總共只要遍歷整個S即可。