不等概率抽卡的毕业期望次数
问题描述
模型是有n个角色需要抽取,每次抽卡都有\(p_i\)的概率抽到第\(i\)个角色,问毕业(抽到全部角色)的抽卡次数数学期望是多少
算法
其中P是目标角色抽卡概率的集合
代码
#include <bits/stdc++.h>
using namespace std;
double cal(vector<double> a){
int n=a.size();
double ans=0;
for(int st=1;st<(1<<n);st++){
double temp=0;
int cnt=0;
for(int i=0;i<n;i++){
if((st>>i)&1){
temp+=a[i];
cnt++;
}
}
int sgn=(cnt&1)?1:-1;
ans+=1.0/temp*sgn;
}
return ans;
}
int main () {
vector<double>a={0.02,0.02,0.02,0.025,0.025};
double ans=cal(a);
printf("%f\n",ans);
}