中超繼續進行,廣州恆大和北京國安馬上開賽了,比賽持續90分鐘,為了分析方便,我們把5分鐘作為乙個時間片,那麼比賽會進行18個時間片。在每乙個時間片內,恆大踢進1球的概率百分比都是a%,國安踢進1球的概率都是b%。當比賽結束後,兩支球隊當中,至少有一支球隊的進球數是質數的概率是多少?
第一行,乙個整數r,表示有r組測試資料。1 <= r <= 10。
每組測試資料格式:
第一行,a和b。 0 <= a <= 100, 0 <= b <= 100。
共r行,每行乙個實數,表示概率。
3
50 50
100 100
12 89
0.5265618908306351
0.00.6772047168840167
題目大意:在18個時間片段內至少有一支球隊的進球數是質數的概率是多少?
根據題意,簡化一下問題,我們先單獨考慮一支球隊進球數是質數的概率。
如果一支球隊的進球數為質數,那麼這支隊的進球數只能是2、3、5、7、11、13、17,繼續簡化問題,這支球隊進球數為2,那麼球隊在18個時間片段內進2球的情況如下:
情況\時間片段12
3456
……17181
√ √√√
√√××××
××××××
××××××
×××××2
√ √√×
××√√√×
××××××
××××××
×××××…
………
……… ………
……… ………
……… ………
……… ………
……… ………
……… ………
……… ………
……… ………
……… ………
……18××××
××××××
××××××
×××××√
√√√
√√哇!這個表的規模也太大了吧!
這樣的情況有多少種呢?能不能通過計算將它算出來呢?仔細觀察,我們就可以發現,這不就是組合數嘛!這就相當於從18個小球中選2個:c182
c^_c1
82在這18個時間片段中,只有2個時間片段進球,其他時間片段不能進球的情況下才符合當前題意,而這種情況又有c182
c^_c1
82種,所以設進球概率為p(g
oal)
p(goal)
p(goal
),球隊在18個時間片段內進2球這種情況的概率是:c182
×p(g
oal)
2×(1
−p(g
oal)
)16
c^_\times p(goal)^2 \times(1-p(goal))^
c182×
p(go
al)2
×(1−
p(go
al))
16由此可知,進球數i
ii相對應的組合數是c18i
c^_c1
8i,概率演算法也與上述相同:c18i
×p(g
oal)
i×(1
−p(g
oal)
)18−i
c^_\times p(goal)^i \times(1-p(goal))^
c18i×
p(go
al)i
×(1−
p(go
al))
18−i
(組合數可用楊輝三角預處理)。
現在,我們回歸到原題,求至少有一支球隊的進球數為質數的概率,先分類討論一下:
恆大進球數為質數,國安進球數為非質數
恆大進球數為非質數,國安進球為質數
恆大進球數為質數,國安進球數為質數
將以上三種情況的概率求出來相加,就是答案了。但是,除此之外還有一種更簡單的方法。
至少有一支球隊的進球數為質數的概率=1-兩支球隊進球數都是非質數的概率
這樣算就方便多了。
#include
#include
#include
#include
using
namespace std;
int r,a,b;
long
long c[25]
[25];
int composite[25]
=;//合數集合
double hd[25]
,ga[25]
,temp1,temp2,ans;
void
init()
for(
int i=
1;i<=
18;i++
)for
(int j=
1;j) c[i]
[j]=c[i-1]
[j-1
]+c[i-1]
[j];
}int
main()
for(
int i=
0;i<=
11;i++
)for
(int j=
0;j<=
11;j++
) ans+
=hd[composite[i]
]*ga[composite[j]];
ans=
1.00
-ans;
cout
)<}return0;
}
組合數學 卡特蘭數
我們以一道題為例來介紹卡特蘭數 給定n n 個0 0 和n n個1 1,它們將按照某種順序排成長度為2 n 2n的序列,求它們能排列成的所有序列中,能夠滿足任意字首序列中0 0的個數都不少於1 1的個數的序列有多少個。輸出的答案對109 7 109 7取模。109 7 為了便於解決,我們可以把這個問...
組合數學 求組合數
對於求組合數,要根據所給資料範圍來選擇合適的演算法 這道題中所給的資料範圍適合用打表的方法直接暴力求解 先用4e6的複雜度預處理出所有的情況,再用1e4的複雜度完成詢問即可 include using namespace std const int n 2010 const int mod 1e9 ...
組合數學 卡特蘭數總結
卡特蘭數 問題 n對括號有多少種合法的匹配方式?卡特蘭數的常見應用之一 結論 對於n對括號,合法的排列共有c n,2n c n 1,2n 基本思路 考慮n對括號,有n個 和n個 對於任意乙個 其前面必定有乙個 跟他對應,如果沒有則是非法序列。也就是說,對於 其前面的 的數量必須大於等於 的數量。假設...