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