zoukankan      html  css  js  c++  java
  • 第二届蓝桥杯省赛---夺冠概率

    1. 夺冠概率

      足球比赛具有一定程度的偶然性,弱队也有战胜强队的可能。
      假设有甲、乙、丙、丁四个球队。根据他们过去比赛的成绩,得出每个队与另一个队对阵时取胜的概率表:

          甲 乙 丙 丁
      甲 - 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万次模拟,计算出甲队夺冠的概率。

    思路:题目给出了甲乙丙丁相互之间竞争取胜的各自的概率。现在要求模拟10万次比赛,求出甲队夺冠的概率,甲获胜比赛安排的类型是有限的。如下图:#

    分析:一共有这三种情况,三种情况甲得冠的概率可以分别求出来,这三种概率相加就是甲得冠的理论概率(这个值是恒定的,因为这三种情况出现的概率都是1/3),

    但是题目让模拟十万次,所以每一次的概率是不相同的,非常接近1/3,我们可以使用rand()函数随机获取0~2这三个数,用来体现着三种情况的随机性,十万次的概率相加,

    用总和除以十万就是答案。。。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<ctime>
     4 #include<cstring>
     5 using namespace std;
     6 
     7 const int maxn = 1e5;
     8 double t[3];
     9 
    10 int main(){
    11     /*三种情况的概率*/
    12     t[0] = 0.1*0.8*0.5+0.1*0.2*0.3;
    13     t[1] = 0.3*0.6*0.5+0.3*.4*0.2;
    14     t[2] = 0.5*0.7*0.1+0.5*0.3*0.3;
    15     double sum=0;
    16     srand(time(NULL));
    17     for( int i=0; i<maxn; i++ ){
    18         sum+=t[rand()%3];
    19     }
    20     printf("%f
    ",sum/maxn);
    21     return 0;
    22 }
    有些目标看似很遥远,但只要付出足够多的努力,这一切总有可能实现!
  • 相关阅读:
    hdu 5146 Sequence
    hdu 1232 畅通工程
    hdu 1213 How Many Tables
    hdu 2822 Dogs
    hdu 1242 Rescue
    hdu 5101 Select
    hdu 1873 看病要排队
    hdu 5112 A Curious Matt
    hdu 5154 Harry and Magical Computer
    hdu 1548 A strange lift
  • 原文地址:https://www.cnblogs.com/Bravewtz/p/10424150.html
Copyright © 2011-2022 走看看