藍橋杯 奪冠概率模擬(取隨機數)

2021-07-26 01:37:25 字數 1565 閱讀 7846

奪冠概率模擬

足球比賽具有一定程度的偶然性,弱隊也有戰勝強隊的可能。

假設有甲、乙、丙、丁四個球隊。根據他們過去比賽的成績,得出每個隊與另乙個隊對陣時取勝的概率表:

甲   乙   丙   丁   

甲    -   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大類6小類計算出甲能取勝的概率:

double a=0.1*0.2*0.3+0.1*0.8*0.5;//預賽:甲乙、丙丁;決賽:甲vs丙/甲vs丁

double b=0.3*0.4*0.1+0.3*0.6*0.5;//預賽:甲丙、乙丁;決賽:甲vs乙/甲vs丁

double c=0.5*0.7*0.1+0.5*0.3*0.3;//預賽:甲丁、乙丙;決賽:甲vs乙/甲vs丙

然後在十萬次迴圈中,使用隨機數在0/1/2三個數中隨機取值,作為當前3個分組情況的模擬。

#include #include #include #include #include using namespace std;

double arr[3];

/****

甲 乙 丙 丁

甲 - 0.1 0.3 0.5

乙 0.9 - 0.7 0.4

丙 0.7 0.3 - 0.2

丁 0.5 0.6 0.8 -

****/

double a=0.1*0.2*0.3+0.1*0.8*0.5;//預賽:甲乙、丙丁;決賽:甲vs丙/甲vs丁

double b=0.3*0.4*0.1+0.3*0.6*0.5;//預賽:甲丙、乙丁;決賽:甲vs乙/甲vs丁

double c=0.5*0.7*0.1+0.5*0.3*0.3;//預賽:甲丁、乙丙;決賽:甲vs乙/甲vs丙

int main()

{ int n=100000;//迴圈次數是十萬次

double ans;

int i;

int c1,c2,c3;

c1=c2=c3=0;

srand(time(0));//需要用當前時間作「種子」,以便每次執行取得的序列不同

while(n--)

{i=rand()%3; //產生0-10的隨機數

//cout<

藍橋杯 奪冠概率

奪冠概率 足球比賽具有一定程度的偶然性,弱隊也有戰勝強隊的可能。假設有甲 乙 丙 丁四個球隊。根據他們過去比賽的成績,得出每個隊與另乙個隊對陣時取勝的概率表 甲 乙 丙 丁 甲 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...

奪冠概率 藍橋杯

這是2012年第三屆藍橋杯全國軟體大賽預賽 c 本科組 的第9題,問題是求奪冠概率。足球比賽具有一定程度的偶然性,弱隊也有戰勝強隊的可能。假設有甲 乙 丙 丁四個球隊。根據他們過去比賽的成績,得出每個隊與另乙個隊對陣時取勝的概率表 甲 乙 丙 丁 甲 0.1 0.3 0.5 乙 0.9 0.7 0....