第三届蓝桥杯C/C++组第九题 足球比赛(概率论+随机数)
? 足球比賽具有一定程度的偶然性,弱隊(duì)也有戰(zhàn)勝強(qiáng)隊(duì)的可能。
?
??? 假設(shè)有甲、乙、丙、丁四個(gè)球隊(duì)。根據(jù)他們過去比賽的成績,得出每個(gè)隊(duì)與另一個(gè)隊(duì)對(duì)陣時(shí)取勝的概率表:
?
??? 甲? 乙? 丙? 丁??
甲?? -? 0.10.3 0.5
乙 0.9? -?? 0.70.4
丙 0.7? 0.3 -??0.2
丁 0.5? 0.6 0.8 -
?
??? 數(shù)據(jù)含義:甲對(duì)乙的取勝概率為0.1,丙對(duì)乙的勝率為0.3,...
?
??? 現(xiàn)在要舉行一次錦標(biāo)賽。雙方抽簽,分兩個(gè)組比,獲勝的兩個(gè)隊(duì)再爭奪冠軍。(參見【1.jpg】)
?
??? 請(qǐng)你進(jìn)行10萬次模擬,計(jì)算出甲隊(duì)奪冠的概率。
?
?
??? 注意:
?
??? 請(qǐng)仔細(xì)調(diào)試!您的程序只有能運(yùn)行出正確結(jié)果的時(shí)候才有機(jī)會(huì)得分!
???
??? 在評(píng)卷時(shí)使用的輸入數(shù)據(jù)與試卷中給出的實(shí)例數(shù)據(jù)可能是不同的。
?
??? 請(qǐng)把所有函數(shù)寫在同一個(gè)文件中,調(diào)試好后,存入與【考生文件夾】下對(duì)應(yīng)題號(hào)的“解答.txt”中即可。
???
??? 相關(guān)的工程文件不要拷入。
???
??? 源代碼中不能能使用諸如繪圖、Win32API、中斷調(diào)用、硬件操作或與操作系統(tǒng)相關(guān)的API。
???
??? 允許使用STL類庫,但不能使用MFC或ATL等非ANSI c++標(biāo)準(zhǔn)的類庫。例如,不能使用CString類型(屬于MFC類庫)。
思路:
? 涉及簡單的概率論知識(shí),四個(gè)人分兩兩比賽,有C_4_2÷2=3種情況(C_4_2即四個(gè)人中選兩個(gè)人為一組,剩下兩個(gè)人自動(dòng)分為一組,但考慮到選甲乙和選丙丁是一樣的情況,因此要除以2)。這三種情況分別是甲對(duì)乙,甲對(duì)丙,甲對(duì)丁。最后要保證甲勝,即要甲在第一輪比賽的時(shí)候勝,然后在第二輪比賽也要取勝,計(jì)算概率的時(shí)候需要運(yùn)用到概率論中的乘法法則。
? 對(duì)于題干需要的十萬次模擬,需要rand()產(chǎn)生十萬個(gè)從0到2的隨機(jī)數(shù),0,1,2分別對(duì)應(yīng)那三種情況甲勝的概率,把概率加起來除以100000可以得出最終答案為0.076018。
? 補(bǔ)充一下rand函數(shù)的用法,隨機(jī)數(shù)發(fā)生器,頭文件是#include<stdlib.h>。
? 舉例:若要產(chǎn)生從0到9的隨機(jī)數(shù),rand()%10即可,要是需要1~10的數(shù),可以rand()%10+1。本題需要0~2.就是rand()%3,非常好用~
<span style="font-size:14px;">#include<stdio.h> #include<stdlib.h> #include<string.h> int main() {double cas[3];memset(cas,0,sizeof(cas));//甲對(duì)乙,甲必須勝//丙對(duì)丁:丙勝,甲對(duì)丙,甲勝+丁勝,甲對(duì)丁,甲勝cas[0]=0.1*0.2*0.3+0.1*0.8*0.5;//甲對(duì)丙,甲必須勝//乙對(duì)丁:乙勝,甲對(duì)乙,甲勝+丁勝,甲對(duì)丁,甲勝cas[1]=0.3*0.4*0.1+0.3*0.6*0.5;//甲對(duì)丁,甲必須勝//乙對(duì)丙:乙勝,甲對(duì)乙,甲勝+丙勝,甲對(duì)丙,甲勝cas[2]=0.5*0.7*0.1+0.5*0.3*0.3;//下面進(jìn)行十萬次模擬int i,t;double sum=0.0;for(i =0; i<100000; i++){t=rand()%3;if(t==0)sum+=cas[0];if(t==1)sum+=cas[1];if(t==2)sum+=cas[2];}printf("%lf\n",sum/100000);return 0; } </span>總結(jié)
以上是生活随笔為你收集整理的第三届蓝桥杯C/C++组第九题 足球比赛(概率论+随机数)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysqljdbc设置参数
- 下一篇: 联想关闭计算机,如何关闭Lenovo计算