查詢簡單移動平均數的程式


在本文中,我們的目標是確定陣列中給定值的簡單移動平均數。讓我們快速瞭解一下簡單移動平均數的含義。

從一段時間 (t) 內的資料得出的平均值稱為簡單移動平均數。在典型的平均數中,簡單移動平均值會隨著資料變化而變化,但在這種平均數中,它也會隨時間變化。在獲得給定時間段 t 的平均值後,一些較早的資料就會被刪除。當此過程繼續時,我們再次獲得新的平均值。由於這個原因,它使用了移動平均線。這種簡單移動平均線在金融市場中有很多應用。

問題陳述

實現一個程式來獲取簡單移動平均數。

方法

為了計算簡單移動平均數,我們必須確認所有指定的專案都符合程式設計師的規範。此外,我們必須確保總和和平均值初始化為零,否則它們可能會使用錯誤的值,並且結果可能不一致。

我們將平均值指定為浮點數或雙精度數型別的資料作為我們的下一個安全措施。如果您是學生,則不必擔心,但如果您決定在商業世界中使用此程式,則將進行數百萬次計算。如果不考慮小數,答案無疑將給出,但結果會有很大差異。

讓我們用一個例子來使主題更清楚,以便您理解。

解釋

將整數陣列視為輸入。

輸入:{1,2,3,4,5}

讓我們將長度設為 2

計算

由於我們取的長度為 2,因此我們一次考慮兩個連續的數字。

考慮 1 和 2,將 1+2 相加得到 3。

這裡得到的平均值為 3/2,即 1.5

考慮 2 和 3,將 2+3 相加得到 5。

這裡得到的平均值為 5/2,即 2.5

考慮 3 和 4,將 3+4 相加得到 7。

這裡得到的平均值為 7/2,即 3.5

考慮 4 和 5,將 4+5 相加得到 9。

這裡得到的平均值為 9/2,即 4.5

所有平均值都被視為輸出。

演算法

下面提供了給定陣列時查詢簡單移動平均數的演算法。

步驟 1:設定整數陣列的大小

步驟 2:輸入陣列的元素。

步驟 3:將 sum 設定為 0,將 movAvg 設定為 0

步驟 4:迭代兩個 for 迴圈。

步驟 5:列印 movAvg=sum/k 獲得的結果。

下面提供了用於查詢給定陣列的簡單移動平均數的 C 程式。

示例

#include<stdio.h>
int main() {
   const int n = 10;  //set the array size
   float a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; //input array elements
   int k = 2;    // set the length
   float sum = 0;
   float movAvg = 0;
//iterate the loop and check for the condition
   for (int i = 0; i <= ( n - k); i++) {
     sum = 0;            
     for (int j = i; j < i + k; j++) {
       sum += a[j];        
     }
     movAvg = sum / k;
   printf("Simple Moving Average : %.2f \n",movAvg); //print output 
   }
   return 0;
}

輸出

執行後,它將產生以下輸出

Simple Moving Average : 1.50 
Simple Moving Average : 2.50 
Simple Moving Average : 3.50 
Simple Moving Average : 4.50 
Simple Moving Average : 5.50 
Simple Moving Average : 6.50 
Simple Moving Average : 7.50 
Simple Moving Average : 8.50 
Simple Moving Average : 9.50

結論

同樣,我們可以透過輸入陣列的值來確定簡單移動平均數。

本文解決了確定給定陣列的簡單移動平均數的挑戰。這裡提供了查詢簡單移動平均數的 C 程式設計程式碼。

更新於: 2023-08-23

2K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.