博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
蓝桥杯比武问题
阅读量:6337 次
发布时间:2019-06-22

本文共 1364 字,大约阅读时间需要 4 分钟。

  某游戏规则中,甲乙双方每个回合的战斗总是有一方胜利,一方失败。游戏规定:失败的一方要把自己的体力值的1/4加给胜利的一方。

例如:如果双方体力值当前都是4,则经过一轮战斗后,双方的体力值会变为:5:3

现在已知:双方开始时的体力值甲:1000,乙:2000

假设战斗中,甲乙获胜的概率都是50%

求解:双方经过4个回合的战斗,体力值之差小于1000的理论概率。

1 #include 
2 #include
3 #include
4 #include
5 using namespace std; 6 7 int main() 8 { 9 int i,j,k;10 //二进制枚举,需要概率对半11 double cnt = 0;12 for(i=0; i<16; i++)13 {14 double a = 1000, b = 2000;//写在for内, 15 for(j=0; j<4; j++)//从0开始 16 {17 if((i>>j)&1)18 {19 a -= a/4;20 b += a/4;21 }22 else23 {24 a += b/4;25 b -= b/4;26 }27 }28 if(fabs(a-b)<1000.0)//内层for外 29 cnt++;//double 也可以自增 30 } 31 cout<
1 #include
2 #include
3 #define N 4 4 double p=0.5;//p表示甲赢的概率是0.5 5 6 double fun(double x, double y, int cur, double k) { 7 double sum=0; 8 if(cur==N) { 9 if(fabs(x-y)<1000)10 sum+=k;11 return sum;12 }13 sum+=fun(x-x/4,y+x/4,cur+1,k*(1-p));//甲输掉比赛14 sum+=fun(x+y/4,y-y/4,cur+1,k*p);15 return sum;//这个必须有,因为当cur!=N时必须也要有返回 16 }17 int main() {18 printf("%lf\n",fun(1000,2000,0,1));19 return 0;20 }

 

转载地址:http://bvxoa.baihongyu.com/

你可能感兴趣的文章
wampServer连接oracle
查看>>
CentOS 6.5下编译安装新版LNMP
查看>>
Android Picasso
查看>>
top命令
查看>>
javascript的作用域
查看>>
新形势下初创B2B行业网站如何经营
查看>>
初心大陆-----python宝典 第五章之列表
查看>>
java基础学习2
查看>>
sysbench使用笔记
查看>>
有关电子商务信息的介绍
查看>>
NFC·(近距离无线通讯技术)
查看>>
多线程基础(三)NSThread基础
查看>>
PHP的学习--Traits新特性
查看>>
ubuntu下,py2,py3共存,/usr/bin/python: No module named virtualenvwrapper错误解决方法
查看>>
Ext.form.field.Number numberfield
查看>>
Linux文件夹分析
查看>>
解决部分月份绩效无法显示的问题:timestamp\union al\autocommit等的用法
查看>>
nginx 域名跳转 Nginx跳转自动到带www域名规则配置、nginx多域名向主域名跳转
查看>>
man openstack >>1.txt
查看>>
linux几大服务器版本大比拼
查看>>