求平均數的算法

如何用C語言求一個數組的平均數?

1.按照小學的數學知識,平均數=所有數的和 / 數的個數

但是如果求一個數組x[999999999]其元素均爲99999999,即x[i]=999999對0<= i <=999999999都成立,這時怎麼辦?計算機根本沒有這麼一個數據類型可以存放這麼大的sum。

那麼有這麼一種思想:前一步的結果作爲後一步的運算因子,可以大大節省運算量和存儲量。

1和2的平均數就是將1+2=3平分給兩個位置([1.5]  [1.5]),1,2,4的平均數就是將1+2+4=7平分給三個位置,那麼可以先將3放到位置中([1.5]   [1.5]   [1.5]+2.5 ),再將剩下的2.5除以3,平分到三個位置中。

於是算法就出來了

avg=0, avg+=(x-avg)/i;

發佈了19 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章