557

来源:互联网 发布:微信网络诈骗 编辑:程序博客网 时间:2024/06/04 19:18

还是纯粹地考察概率的题目,很多时候概率类的问题都有一个技巧是求解对立事件的概率p,然后可以得出我们想求出的事件的概率为1-p,所以这道题目就很好解决了,注意代码中的下标i代表的人数是2*i个人,同时利用的是递推求概率,这是一个技巧,具体实现见如下代码:

#include<iostream>#include<vector>#include<string>#include<set>#include<stack>#include<queue>#include<map>#include<algorithm>#include<cmath>#include<iomanip>#include<cstring>#include<sstream>#include<cstdio>#include<deque>#include<functional>using namespace std;double ans[50005];void Init(){ans[1] = 1;for (int i = 1; i < 50000; i++){ans[i + 1] = ans[i] * (2 * i - 1) / (2 * i);}}int main(){Init();int Case;cin >> Case;while (Case--){int n;cin >> n;cout << fixed << setprecision(4) << 1-ans[n/2] << endl;}return 0;}

原创粉丝点击