国信蓝点2011c本科概率问题

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

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

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

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

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

 

Code:
  1.   
  2. /*******************************  
  3. 对甲进行分析,总共有2^4种结果。  
  4. 甲赢得场数的情况有0,1,2,3,4.  
  5. 0:(4,0)=1  
  6. 1:(4,1)=4  
  7. 2:(4,2)=6  
  8. 3:(4,3)=4  
  9. 4:(4,4)=1  
  10. 加起来刚好就是16种结果。  
  11. 每种情况的概率就是1/16  
  12. ********************************/  
  13. #include <stdio.h>   
  14. #include <math.h>   
  15.   
  16. int main(void)   
  17. {   
  18.   double tax;   
  19.   double x,y;   
  20.   int i;   
  21.   int count=0;   
  22.   int temp;   
  23.   int j;   
  24.   count = (int)pow((double)2,(double)4);   
  25.   tax = 0;   
  26.   for (i=0; i<count;i++)// 0----1111   
  27.   {   
  28.     x=2000;   
  29.     y=2000;   
  30.     for (j=0; j<4; j++)   
  31.     {   
  32.         temp=1;   
  33.         temp=temp<<j;// 0001 0010 0100 1000   
  34.         /************************************  
  35.          甲胜的情况:4盘都输、赢1盘、赢2盘..赢4盘  
  36.          i=0.4输。  
  37.          i=1,2,4,8.1赢  
  38.          i=3,5,6,9,10,12.2赢  
  39.          i=7,11,13,14.3赢  
  40.          i=15.4赢  
  41.         ************************************/  
  42.         if ((i&temp) == temp)//    
  43.         {   
  44.             x+=y/4;   
  45.             y-=y/4;   
  46.         }   
  47.         else  
  48.         {   
  49.             x-=x/4;   
  50.             y+=x/4;   
  51.         }   
  52.            
  53.     }   
  54.     printf("%d %f/n", i, fabs(x-y));   
  55.         if (fabs(x-y)<1000)   
  56.             tax+=1.0/16;   
  57.   }   
  58.   
  59.   printf("%lf",tax);   
  60. }  

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值