程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python解CCF-CSP真題《202206-1—歸一化處理》

編輯:Python

想查看其他題的真題及題解的同學可以前往查看:CCF-CSP真題附題解大全

試題編號:202206-1試題名稱:歸一化處理時間限制:500ms內存限制:512.0MB問題描述:

題目背景

在機器學習中,對數據進行歸一化處理是一種常用的技術。
將數據從各種各樣分布調整為平均值為 0、方差為 1 的標准分布,在很多情況下都可以有效地加速模型的訓練。

問題描述

這裡假定需要處理的數據為 n 個整數 a1,a2,⋯,an。

這組數據的平均值:
a¯=a1+a2+⋯+ann

方差:
D(a)=1n∑i=1n(ai−a¯)2

使用如下函數處理所有數據,得到的 n 個浮點數 f(a1),f(a2),⋯,f(an) 即滿足平均值為 0 且方差為 1:
f(ai)=ai−a¯D(a)

輸入格式

從標准輸入讀入數據。

第一行包含一個整數 n,表示待處理的整數個數。

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

輸出格式

輸出到標准輸出。

輸出共 n 行,每行一個浮點數,依次表示按上述方法歸一化處理後的數據 f(a1),f(a2),⋯,f(an)。

樣例輸入

7
-4 293 0 -22 12 654 1000

樣例輸出

-0.7485510379073613
0.04504284674812264
-0.7378629047806881
-0.7966476369773906
-0.7057985054006686
1.0096468614303775
1.9341703768876082

樣例解釋

平均值:a¯≈276.14285714285717

方差:D(a)≈140060.69387755104

標准差:D(a)≈374.24683549437134

子任務

全部的測試數據保證 n,|ai|≤1000,其中 |ai| 表示 ai 的絕對值。

且輸入的 n 個整數 a1,a2,⋯,an 滿足:方差 D(a)≥1。

評分方式

如果你輸出的每個浮點數與參考結果相比,均滿足絕對誤差不大於 10−4,則該測試點滿分,否則不得分。

提示

  • C/C++:建議使用 double 類型存儲浮點數,並使用 printf("%f", x);$$' 進行輸出。

  • Python:直接使用 print(x) 進行輸出即可。

  • Java:建議使用 double 類型存儲浮點數,可以使用 System.out.print(x); 進行輸出。

真題來源:歸一化處理

 感興趣的同學可以進去進行練習提交

滿分題解:

n = int(input())
nums = list(map(int,input().split()))
a = sum(nums)/n
d = 0
for i in range(n):
d += (nums[i]-a)**2
d /= n
data = []
for i in range(n):
point = (nums[i]-a)/(d**0.5)
data.append(point)
for i in data:
print(i)

運行結果:


ccf-csp練習專欄  

https://blog.csdn.net/weixin_53919192/category_11828479.html?spm=1001.2014.3001.5482https://blog.csdn.net/weixin_53919192/category_11828479.html?spm=1001.2014.3001.5482


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved