CSP 往期考试题练习
CCF CSP 归一化处理
开始准备CSP考试了,记录一下,防止懒惰
题目描述
输入格式
输出格式
样例
方法和思路
这道题,初看时,会发现是数学的方差标准差的知识。看到式子不要慌,只要数学上能理解这道题的步骤,基本就可以直接写。主要要求的过程中得有和、平均数、方差、标准差。如果不知道这些概念,建议百度搜索。
那么,这题就十分简单了。然后看输入输出要求,(1)如果是多组数据,可以选择结构体的方式(2)但这题每次的输入输出都是基于一组数据的,就可以简单粗暴地直接数组(注意n<1000)
同时,根据输入输出规则确定数据类型,就可以动手写了。
在写的过程中,可使用求平方、开平方函数。
此外,在最初写的过程,建议直接将样例写入函数,减少测试输入时间。
100分C++代码
#include<stdio.h>
#include<math.h>
#include <iostream>
using namespace std;
int main()
{
int n,arr[1001];//7 -4 293 0 -22 12 654 1000
double sum = 0;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> arr[i];
sum += arr[i];
}
double avg = sum / n;
double variance = 0;
for (int i = 0; i < n; i++)
{
variance += (arr[i] - avg) * (arr[i] - avg);
}
variance = variance / n;
double fa = 0;
for (int i = 0; i < n; i++)
{
double a = arr[i] - avg;
fa = a / sqrt(variance);//不用考虑variance是否小于等于0,方差的性质
printf("%f\n", fa);
}
return 0;
}