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