还是得学率论 T_T sad.jpg
题解:
这个题用到了概率论的知识,伯努利实验的期望公式
度娘解释为:
几何分布 是离散型概率分布。其中一种定义为:在n次伯努利试验中,试验k次才得到第一次成功的机率。详细地说,是:前k-1次皆失败,第k次成功的概率。几何分布是帕斯卡分布当r=1时的特例。
在伯努利试验中,成功的概率为p,若ξ表示出现首次成功时的试验次数,则ξ是离散型随机变量,它只取正整数,且有P(ξ=k)=(1-p)的(k-1)次方乘以p (k=1,2,…,0<p<1),此时称随机变量ξ服从几何分布。它的期望为1/p,方差为(1-p)/(p的平方)。
该题的期望为 E ( x ) = ( n ∗ x + m ) ( 1 − ( 1 − p ) x ) E(x)=\frac{(n*x +m)}{(1-(1−p)^x)} E(x)=(1−(1−p)x)(n∗x+m)
求导后发现有零点,三分即可
#include <cmath>
#include <cstdio>
#include <iostream>
using namespace std;
double p, q, n, m;
double num(double x){
return (n*x+m)/(1.0-pow(q, x));
}
int main(){
int _;
scanf("%d",&_);
while(_--) {
scanf("%lf%lf%lf", &n,&m,&p);
p *= 0.0001;
q = 1.0 - p;
double l = 0, r = 1e9;
while(r - l >= 1e-8){
double midl = l + (r - l) / 3.0;
double midr = r - (r - l) / 3.0;
if(num(midl) > num(midr)) l = midl;
else r = midr;
}
int ans = l;
printf("%.10f\n", min(num(ans), num(ans + 1)));
}
return 0;
}