小小神枪手 开局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 }

 

上一篇:C# 使用Linq联合SQL与Oracle查询的例子


下一篇:nbu驱动器重新识别,更新信息