帕琪有7种属性的能量晶体,分别为a1,a2,a3,a4,a5,a6,a7(均为自然数),每次释放魔法时,会随机消耗一个现有的能量晶体,然后释放一个对应属性的魔法。
帕琪七重奏的触发条件是:连续释放的7个魔法中,如果魔法的属性各不相同,就能触发一次帕琪七重奏。
现在帕琪想知道,她释放出帕琪七重奏的期望次数是多少

链接🔗

[Luogu P3802]小魔女帕琪

题解

1-7次释放魔法满足的概率是

E(X)=7!anbn1cn2dn3en4fn5gn6E(X) = 7! * \frac{a}{n} * \frac{b}{n-1} * \frac{c}{n-2}* \frac{d}{n-3}* \frac{e}{n-4}* \frac{f}{n-5}* \frac{g}{n-6}
然后我们考虑 2 - 8次达成的概率
要满足 2 - 8 次达成,那么第8次必定与第一个相同,

E(X)=7!anbn1cn2dn3en4fn5gn6a1n7E(X) = 7! * \frac{a}{n} * \frac{b}{n-1} * \frac{c}{n-2}* \frac{d}{n-3}* \frac{e}{n-4}* \frac{f}{n-5}* \frac{g}{n-6} * \frac{a-1}{n-7}
因为第一个数 an\frac{a}{n}77 种选法,所以我们还要乘以 77
又因为
i=17ai1N7=1\sum_{i=1}^7 \frac{a_i-1}{N-7} = 1

所以原式子可以化成

E(X)=7!anbn1cn2dn3en4fn5gn6E(X) = 7! * \frac{a}{n} * \frac{b}{n-1} * \frac{c}{n-2}* \frac{d}{n-3}* \frac{e}{n-4}* \frac{f}{n-5}* \frac{g}{n-6}
然后式子有 n6n-6 次机会
答案就是

E(X)=7!anbn1cn2dn3en4fn5gE(X) = 7! * \frac{a}{n} * \frac{b}{n-1} * \frac{c}{n-2}* \frac{d}{n-3}* \frac{e}{n-4}* \frac{f}{n-5}* g

代码

#include <cstdio>
using namespace std;
int a[10],sum;
int main()
{  
    // freopen("a.in","r",stdin);
    // freopen("k.out","w",stdout);
    for(int i=1;i<=7;i++) scanf("%d",&a[i]);
    for(int i=1;i<=7;i++) sum+=a[i];
    double ans = 2 * 3 * 4 * 5 * 6 * 7;
    for(int i=1;i<=6;i++)
    {
        ans *= (double)a[i]/(double)(sum-i+1);
    }
    printf("%.3lf",ans*a[7]);
    return 0;
}