Standard Deviation UVA - 10886

题意:。。。

思路:1.百度标准差式子,将式子展开

2.直接暴力算

#include <bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define INF 0x3f3f3f3f
#define mod 1000000007;
using namespace std;
//    freopen("in.txt","r",stdin);
//    freopen("out.txt","w",stdout);
const int maxn = 1000 + 2;
ull seed;
long double gen()
{
    static const long double z = (long double)1.0 / (1LL<<32);
    seed >>= 16;
    seed &= (1ULL << 32) - 1;
    seed *= seed;
    return seed * z;
}
int main()
{
    int T; scanf("%d",&T);
    for(int kase = 1;kase <= T;kase++)
    {
        int n; scanf("%d%llu",&n,&seed);
        double u = 0,x = 0,p;
        for(int i = 1;i <= n;i++)
        {
            double temp = gen();
            u += temp;
            x += temp * temp;
        }
        p = u;
        u /= n;
        printf("Case #%d: %.5lf\n",kase,sqrt((x - 2 * u * p + n * u * u) / n));
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/sgsyacm/article/details/87119008