zoukankan      html  css  js  c++  java
  • 小小神枪手 开局98K

    描述

    JM是一个吃鸡玩家,开局98K,人物描边大师。

    已知JM的初始射击命中率为75%。

    如果JM一击未中,则会由于种种原因(心理压力)导致JM的命中率在上一枪的命中率基础上,减低10%

    例如:第一枪的命中率为75%,

    则第二枪的命中率为75%*90%第三枪的命中率为75%*90%*90% ,以此类推。

    当然,当命中率低于50%的时候,JM则会放弃射击。

    现在,JM想知道,他击中敌人的期望次数是多少? 保留6位小数

    注意:

    1、射击命中则停止射击 
    2、放弃射击则不统计次数。

     

    概率:反映随机事件出现的可能事情大小

    期望:实验中每次可能结果的概率乘以其结果的总和

    一枪命中的概率为:p1=75%

    两枪命中的概率为:p2=(1-75%)*75%*90

    三枪命中的概率为:p3=(1-75%)*(1-75%*90%)* (75%*90%*90%)

    四枪命中的概率为:p4=(1-75%)*(1-75%*90%)*(1-75%*90%*90%)*(75%*90%*90%*90%)

    五枪命中的概率为:p5=(1-75%)*(1-75%*90%)*(1-75%*90%*90%)*(1-75%*90%*90%*90%)*(75%*90%*90%*90%*90%)

    注意题目中有个条件:JM在命中率低于50%的时候,会放弃射击,而放弃射击则不统计次数,JM第五枪命中的概率为0.492075,小于50%,所以JM会放弃第五枪,也就是说,JM不会有第五枪命中的时候,因为它注定会放弃第五枪,所以算期望次数的时候,就算到第四枪就行了

    下面是代码(emmmm,,,,,,,,其实根本用不到代码啊啊啊啊啊啊啊啊啊)

     1 #include<iostream>
     2 using namespace std;
     3 int main(){
     4     double x=0.75;
     5     double sum=0;
     6     double before=1;
     7     for(int i=1;i<=4;i++){
     8         sum+=(before*x)*i;
     9         before*=(1-x);
    10         x*=0.9;    
    11     }
    12     printf("%.6lf",sum);
    13     return 0;
    14 }

     

  • 相关阅读:
    RabbitMQ笔记-基础知识
    什么是HashMap【转】
    Mysql笔记-查询缓存
    Redis笔记-配置文件
    Autofac-.net core控制台使用依赖注入【转】
    布隆过滤器(c#简单实现)【转】
    Redis笔记-布隆过滤器组件
    StackExchange.Redis笔记-分布式锁
    StackExchange.Redis笔记-发布订阅
    StackExchange.Redis笔记-性能调优【转】
  • 原文地址:https://www.cnblogs.com/fate-/p/12416830.html
Copyright © 2011-2022 走看看