题意:。。。
思路: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;
}
本文介绍了一个使用C++实现的随机数生成器,并通过该生成器计算了一组随机数的标准差。代码中使用了long double类型来确保计算精度,通过种子(seed)初始化随机数生成器,并进行了多次实验求平均值。最后,文章展示了如何通过标准差公式计算随机数集的离散程度。
1222

被折叠的 条评论
为什么被折叠?



