夺冠概率
来源:互联网 发布:ug编程学习 编辑:程序博客网 时间:2024/06/02 13:52
足球比赛具有一定程度的偶然性,弱队也有战胜强队的可能。
假设有甲、乙、丙、丁四个球队。根据他们过去比赛的成绩,得出每个队与另一个队对阵时取胜的概率表:
甲 乙 丙 丁
甲 - 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万次模拟,计算出甲队夺冠的概率。
/*计算甲队获胜的概率:记 甲乙丙丁分别为 a,b,c,d; 甲 乙 丙 丁甲 0.1 0.3 0.5 乙0.9 0.7 0.4丙0.7 0.3 0.2丁0.5 0.6 0.8 用一个100000的循环计算有利事件个数;分6种情况讨论A获胜的事件数; 其中调用随机函数来筛选出事件个数,这个技巧很关键。 */# include <stdio.h> # include <stdlib.h> int main(){ int i, j, k; //count int randfigure; int awin = 0; for(i = 0; i < 100000; i++){ randfigure = rand(); //调用产生伪随机数的随机函数 if(randfigure % 3 == 0){ //AB together if(randfigure % 10 < 1){ //A win B if(randfigure % 10 < 2){ //C win D if(randfigure % 10 < 3){ //A win C awin++; } }else{ //D win C if(randfigure % 10 < 5){ //A win D awin++; } } } }else if(randfigure % 3 == 1){ //AC together if(randfigure % 10 < 3){ //A win C if(randfigure % 10 < 4){ //B win D if(randfigure % 10 < 1){ //A win B awin++; } }else{ //D win B if(randfigure % 10 < 5){ //A win D awin++; } } } }else{ //AD together if(randfigure % 10 < 5){ //A win D if(randfigure % 10 < 3){ //C win B if(randfigure % 10 < 3){ //A win C awin++; } }else{ //B win C if(randfigure % 10 < 1){ //A win B awin++; } } } } } printf("%f\n", awin / 100000.0); return 0; }
这个调用随机函数很精髓。
0 0
- 夺冠概率
- 夺冠概率
- 夺冠概率
- 夺冠概率
- 夺冠概率
- 9.夺冠概率
- 夺冠概率--蓝桥杯
- 蓝桥杯(夺冠概率)
- 夺冠概率模拟
- 夺冠概率 蓝桥杯
- 蓝桥杯-夺冠概率 C++实现
- 蓝桥杯 夺冠概率 解题报告
- 夺冠概率和转矩阵
- rand函数 软件大赛题目 夺冠概率
- 2012蓝桥杯【初赛试题】 夺冠概率
- 2012蓝桥杯预赛题-夺冠概率
- 蓝桥杯---夺冠概率(2012预赛试题)
- 蓝桥杯-夺冠概率模拟(取随机数)
- python 中matplotlib的使用
- Matlab数字图像处理基础【5】
- 使用devenv在命令行中编译项目
- C++ STL基本容器的使用
- 用VS开发PHP扩展
- 夺冠概率
- 字符串的排列
- Github入门 项目上传
- 小程序,计算器
- Remove K Digits
- python学习--模型过拟合查看learning curve
- thymeleaf 常用用法
- PHP编译选项
- 关于方法内定义的类引用局部变量需要将变量设置final的问题