不等概率抽卡的毕业期望次数

问题描述

模型是有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
",ans);
}

原文地址:https://www.cnblogs.com/ucprer/p/15477396.html