題目描述:
足球比賽具有一定程度的偶然性,弱隊也有戰勝強隊的可能。
假設有甲、乙、丙、丁四個球隊。根據他們過去比賽的成績,得出每個隊與另乙個隊對陣時取勝的概率表:
甲 乙 丙 丁
甲 - 0.1 0.3 0.5
乙 0.9 - 0.7 0.4
丙 0.7 0.3 - 0.2
丁 0.5 0.6 0.8 -
資料含義:甲對乙的取勝概率為0.1,丙對乙的勝率為0.3,...
現在要舉行一次錦標賽。雙方抽籤,分兩個組比,獲勝的兩個隊再爭奪冠軍。(參見【1.jpg】)
請你進行10萬次模擬,計算出甲隊奪冠的概率。
題目分析:
這個題目是通過多次試驗的結果出現的頻率,來模擬事件發生的概率;
比賽的分組一共有3種情況:
1. 甲乙一組,丙丁一組
2. 甲丙一組,乙丁一組
3. 甲丁一組,乙丙一組
其中,每一種情況,甲都可能獲勝,也就有相應的獲勝概率;
理想狀態下,這三種情況,發生的概率是一樣的也就是1/3;
我們可以由此得到乙個理想狀態下的甲獲勝的概率,
我們將概率表定義為乙個4×4的陣列,則:
p1 = 1.0/3 * a[0][1] *(a[2][3] * a[0][2] + a[3][2] * a[0][3]);
p2 = 1.0/3 * a[0][2]*(a[1][3] * a[0][1] + a[3][1] * a[0][3]);
p3 = 1.0/3 * a[0][3]*(a[1][2] * a[0][1] + a[2][1] * a[0][2]);
p = p1+p2+p3 = 0.076
所以我們通過10萬次模擬的結果應該在0.076附近
程式**:
#include#include#includeusing namespace std;
double a[4][4]=,,
,};double fun2(double p1,int m,int n)//另一組比賽和第二輪比賽結果
double fun1(int n)
}int main()
; float p[3];
//甲乙——丙丁
p[0]=a[0][1]*(a[2][3]*a[0][2]+a[3][2]*a[0][3]);
//甲丙——乙丁
p[1]=a[0][2]*(a[1][3]*a[0][1]+a[3][1]*a[0][3]);
//甲丁——乙丙
p[2]=a[0][3]*(a[1][2]*a[0][1]+a[2][1]*a[0][2]);
srand(time(0));
float sum=0;
for(int i=0;i<10000;i++)
float pi = sum/10000;
cout<
藍橋杯 奪冠概率(2012預賽試題)
足球比賽具有一定程度的偶然性,弱隊也有戰勝強隊的可能。假設有甲 乙 丙 丁四個球隊。根據他們過去比賽的成績,得出每個隊與另乙個隊對陣時取勝的概率表 甲 乙 丙 丁 甲 0.1 0.3 0.5 乙 0.9 0.7 0.4 丙 0.7 0.3 0.2 丁 0.5 0.6 0.8 資料含義 甲對乙的取勝概...
藍橋杯 奪冠概率
奪冠概率 足球比賽具有一定程度的偶然性,弱隊也有戰勝強隊的可能。假設有甲 乙 丙 丁四個球隊。根據他們過去比賽的成績,得出每個隊與另乙個隊對陣時取勝的概率表 甲 乙 丙 丁 甲 0.1 0.3 0.5 乙 0.9 0.7 0.4 丙 0.7 0.3 0.2 丁 0.5 0.6 0.8 資料含義 甲對...
藍橋杯 奪冠概率
足球比賽具有一定程度的偶然性,弱隊也有戰勝強隊的可能。假設有甲 乙 丙 丁四個球隊。根據他們過去比賽的成績,得出每個隊與另乙個隊對陣時取勝的概率表 甲乙 丙丁甲 0.1 0.3 0.5 乙 0.9 0.7 0.4 丙 0.7 0.3 0.2 丁 0.5 0.6 0.8 資料含義 甲對乙的取勝概率為0...