小魔女帕琪
题目链接
题目链接
题解
如果我们能知道每七个连续的晶体释放魔法的概率,将所有的可能性加起来便是结果,令\(a_1,a_2...a_7为每种属性的晶体数量,\)以前七个为例,如果能施放魔法,概率必为\(7!\times C_n^{a1}\times C_{n-1}^{a2}...\times C_{n - 6}^{a7}\),7!是因为释放一次魔法时每种属性的晶体位置不确定,接下来我们可以感性的理解一下,对于抽签,在每次不知道前者结果时概率时一样的,本题也可以这么理解,之后每七个能释放魔法的概率均相同,由于长度为7的串一共有\(n-6\)个,最后答案乘上即可
代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 | #include<bits/stdc++.h>
using namespace std;
const int N = 10;
double f[N], g[N];
int a[N];
double res = 1;
int main() {
int n = 0;
for(int i = 1; i <= 7; i ++ ) {
cin >> a[i];
n += a[i];
}
int fac7 = 1 * 2 * 3 * 4 * 5 * 6 * 7;
bool flag = true;
for(int i = 1; i <= 7; i ++ ) {
if(n - i + 1 == 0) {
flag = false;
break;
}
res *= a[i] * 1.0 / (n - i + 1);
}
if(!flag) cout << "0.000" << endl;
else {
res = res * fac7 * (n - 6);
printf("%.3lf", res);
}
return 0;
}
|