Pre
不会
先膜拜一发ButterflyDew的题解
Solution
这道题可以考虑前\(7\)个事件触发的概率。
就是\(7!\times\prod\limits_{i=1}^7\frac{a_i}{N-i+1}\)
至于为什么是\(7!\),因为不同顺序乘起来发现分子分母都一样,所以概率一样,所以就是\(7!\)
然后证明对于每一个\([k,k+6]\)(\(k\)的限制自己猜,我不想写)这个区间触发的概率都是一样的,也就是上面的式子。
\(ButterflyDew\)的题解给出的是证明\([k-1,k+5]\)触发的情况下。
实际上可以感性理解,因为任意一个位置任意一个权值的概率是恒定的。
也就是不考虑\([1,i-1]\)和\([i+1,n]\)的取值,\(i\)位置上的取值是\(k\)的概率一定为\(\frac{a_k}{N}\)
也就是与前面的发生情况无关,如何证明请自己去猜。
如果我不是鸽子的话就会补。
所以一共有\(n-6\)个位置,可能会触发。
答案就是\(7!\times\prod\limits_{i=1}^7\frac{a_i}{N-i+1}\times(N-6)\)
Code
#include <cstdio>
#define ll long long
#define xx first
#define yy second
using namespace std;
int a1, a2, a3, a4, a5, a6, a7;
int main () {
#ifdef chitongz
freopen ("x.in", "r", stdin);
#endif
scanf ("%d%d%d%d%d%d%d", &a1, &a2, &a3, &a4, &a5, &a6, &a7);
double N = a1 + a2 + a3 + a4 + a5 + a6 + a7;
double ans = 5040.00 * a1 / N * a2 / (N - 1) * a3 / (N - 2) * a4 / (N - 3) * a5 / (N - 4) * a6 / (N - 5) * a7;
printf ("%.3lf\n", ans);
return 0;
}
Conclusion
一定注意要写成\(5040.00\)否则会成\(80\)分。