【寒假每日一题】AcWing 4509. 归一化处理

简介: 目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解 三、知识风暴 1、cmath头文件相关函数2、cout大法

一、题目

1、原题链接

4509. 归一化处理 - AcWing题库


2、题目描述

在机器学习中,对数据进行归一化处理是一种常用的技术。

将数据从各种各样分布调整为平均值为 0、方差为 1 的标准分布,在很多情况下都可以有效地加速模型的训练。

这里假定需要处理的数据为 n 个整数 a1,a2,⋯,an。

这组数据的平均值:

1.png

方差:

2.png

使用如下函数处理所有数据,得到的 n 个浮点数 f(a1),f(a2),⋯,f(an)即满足平均值为 0且方差为 1:

3.png




输入格式

第一行包含一个整数 n,表示待处理的整数个数。

第二行包含空格分隔的 n 个整数,依次表示 a1,a2,⋯,an。


输出格式

输出共 n 行,每行一个浮点数,依次表示按上述方法归一化处理后的数据 f(a1),f(a2),⋯,f(an)。

如果你输出的每个浮点数与参考结果相比,均满足绝对误差不大于 10^(-4),则该测试点满分,否则不得分。


数据范围

全部的测试数据保证 n,|ai|≤1000,其中 |ai| 表示 ai 的绝对值。

且输入的 n 个整数 a1,a2,⋯,an 满足:方差 D(a)≥1。


输入样例:

7

-4 293 0 -22 12 654 1000


输出样例:

-0.7485510379073613

0.04504284674812264

-0.7378629047806881

-0.7966476369773906

-0.7057985054006686

1.0096468614303775

1.9341703768876082


样例解释

4.png




二、解题报告

1、思路分析

1)根据题意进行模拟。


2)依次输出相应的结果,即为所求。


2、时间复杂度

时间复杂度为O(n)


3、代码详解

#include <iostream>

#include <cmath>

using namespace std;

int a[1010];

int main() {

   int n;

cin>>n;

double sum=0;

for(int i=0;i<n;i++){

 cin>>a[i];

 sum+=a[i];

}

double ave=sum/n;

double dsum=0;

for(int i=0;i<n;i++){

 dsum+=(a[i]-ave)*(a[i]-ave);

}

double d=dsum/n;

for(int i=0;i<n;i++){

 cout<<(a[i]-ave)/sqrt(d)<<endl;

}

return 0;

}


三、知识风暴

1、cmath头文件相关函数

1)sqrt(double x):求x开平方后的结果。

2)pow(double x,double y):求x的y次方的结果。

3)fabs(double x):对double型数据取绝对值。

4)abs(int x):对整数取绝对值。

5)floor(double x):x向下取整。

6)ceil(double x):x向上取整。

7)round(double x):x四舍五入取整。


2、cout大法

当程序无法正常运行且无法发现错误时,可在程序不同位置输出此时的变量值,观察是否为期望值,从而来判断程序的错误之处。


目录
相关文章
真下饭!字节技术官DDD(领域驱动设计)手册,拆解业务代码首选
至少20年前,一些顶尖的软件设计人员就已经认识到领域建模和设计的重要性,但令人惊讶的是,这么长时间以来几乎没有人写出点儿什么,告诉大家应该做哪些工作或如何去做。尽管这些工作还没有被清楚地表述出来,但一种新的思潮已经形成,它像一股暗流一样在对象社区中涌动,我把这种思潮称为领域驱动设计(domain-driven design)。
|
开发者 物联网 物联网安全
透视盒马:新零售操作系统的秘密
盒马是一个端到端,线上线下一体化的零售业务。在阿里CIO学院攻“疫”技术公益大咖说的第十六场直播中,盒马技术负责人何崚详细介绍了盒马产品技术在构建供给网络、销售网络、物流网络这三个核心命题时遇到的挑战和技术难点。
4501 2
|
缓存 Ubuntu 网络协议
Linux系统编程之文件I/O函数的使用:介绍文件I/O函数的基本概念、用法和实现方式
Linux系统编程之文件I/O函数的使用:介绍文件I/O函数的基本概念、用法和实现方式
257 1
|
10月前
|
存储 供应链 算法
构建防欺诈交易的坚固防线
构建防欺诈交易的坚固防线
83 12
|
9月前
|
JavaScript 前端开发
第三问:与、或、非与其截断原理
本文介绍了逻辑运算符“与”(&&)、“或”(||)和“非”(!)的基本功能及其真值表,并详细解释了它们的截断原理(短路求值)。文章还强调了在使用这些运算符时需要注意的类型转换、短路行为、优先级和可读性问题。
350 0
|
12月前
|
缓存 物联网 数据库
如何帮助我们改造升级原有架构——基于TDengine 平台
一、简介 TDengine 核心是一款高性能、集群开源、云原生的时序数据库(Time Series Database,TSDB),专为物联网IoT平台、工业互联网、电力、IT 运维等场景设计并优化,具有极强的弹性伸缩能力。同时它还带有内建的缓存、流式计算、数据订阅等系统功能,能大幅减少系统设计的复杂度,降低研发和运营成本,是一个高性能、分布式的物联网IoT、工业大数据平台。 二、TDengine 功能与组件 TDengine 社区版是一开源版本,采用的是 AGPL 许可证,它具备高效处理时序数据所需要的所有功能,包括: SQL 写入、无模式写入和通过第三方工具写入 S标准 SQL 查
233 12
|
11月前
|
SQL 关系型数据库 MySQL
MySQL EXPLAIN该如何分析?
本文将详细介绍MySQL中`EXPLAIN`关键字的工作原理及结果字段解析,帮助优化查询性能。`EXPLAIN`可显示查询SQL的执行计划,其结果包括`id`、`select_type`、`table`等字段。通过具体示例和优化建议,帮助你理解和应用`EXPLAIN`,提升数据库查询效率。
552 1
|
SQL 机器学习/深度学习 分布式计算
MaxCompute产品使用合集之如何创建Transactional Table 1.0表并设置主键
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
181 1
|
安全 算法 数据安全/隐私保护
支付系统12----微信支付----支付安全总结
支付系统12----微信支付----支付安全总结
|
Windows
如何快速安装FL Studio 21中文版win64_21.0.0.331水果编曲宿主daw 软件
编曲宿主DAW软件FL Studio21 简称FL,全称:Fruity Loops Studio21,因此国人习惯叫它"水果"。目前版本是FL Studio21.0.0.331,也是兔八哥爱分享使用版本。它让你的计算机就像是全功能的录音室,大混音盘,非常先进的制作工具,让你的音乐突破想象力的限制。FLstudio21版本已经发布了,看了一下,还是蛮激动的有很多功能大改变 。
865 0
如何快速安装FL Studio 21中文版win64_21.0.0.331水果编曲宿主daw 软件