• 123.甲乙混战 (15分)


    C时间限制:3000 毫秒 |  C内存限制:3000 Kb
    题目内容:
     某游戏规则中,甲乙双方每个回合的战斗总是有一方胜利,一方失败。
    游戏规定:失败的一方要把自己的体力值的1/4加给胜利的一方。例如:
    如果双方体力值当前都是4,则经过一轮战斗后,双方的体力值会变为:5,3。
    现在已知:双方开始时的体力值甲:1000,乙:2000。
    假设战斗中,甲乙获胜的概率都是50%求解:双方经过4个回合的战斗,
    体力值之差小于1000的理论概率。
    输入描述
    此题直接编译出结果就可,不需要输入数据

    输出描述
    输出4个回合的战斗后体力值之差小于1000的理论概率,保留6位小数

    输入样例
    此题直接编译出结果就可,不需要输入数据

    输出样例
    0.000000

    #include<iostream>
    #include<stdio.h>
    #include<math.h>
    using namespace std;
    double pass = 0,sum = 0;
    void fun(double a,double b,int cnt){
        if(cnt==4){
            if(fabs(a-b)<1000){
                pass++;
            }
            sum++;
            return ;
        }
        fun(a*0.75,b+a*0.25,cnt+1);
        fun(a+b*0.25,b*0.75,cnt+1);
         
    }
    int main(){
        fun(1000,2000,0);
        printf("%.6f
    ",pass/sum);                      
        return 0;
    }
  • 相关阅读:
    关于正无穷大取值小记
    Ubuntu16.04的图形化界面无法启动问题
    腾讯地图 API 调用入门
    背包九讲PDF
    剑指offer 题解记录
    C++ 各类型转换及关键字
    简易web服务器
    树 总结
    排序算法总结
    C++进阶知识整理
  • 原文地址:https://www.cnblogs.com/lusiqi/p/11853778.html
Copyright © 2020-2023  润新知