吳揚帆



摘要
Excel具有非常強大的數值計算功能,不需編程也能求解很多復雜數值計算問題。本文以累加、連乘、遞推、分類統計問題為例,介紹基本數值算法的Excel實現方法。
【關鍵詞】Excel 算法 數值計算
1 引言
對于求解一些數據量大且有一定復雜性的問題,人們往往想到運用計算機程序設計語言編程但專業的編程語言不易為普通人掌握。Excel作為大眾比較熟悉的常用軟件之一,其實也可以用來解決基本數值算法問題,在這些場合它可以替代程序設計語言。本文以幾種常用數值算法為例,闡述Excel實現這些數值算法的方法。
2 累加算法的Excel實現
累加算法是求解很多數據之和的方法,在計算機中是通過逐步累加數據實現的。如求π=4/1-4/3+4/5-4/7+…。這是求圓周率的近似公式,累加的數據項越多,結果越接近精確值。發現第i項的通式為
;*是乘號,A是乘方,/是除號;i=l,2,…。可以這樣用Excel計算:用第A列輸入序號i,用第B列來顯示累加和。在第1行的A1和B1單元格分別輸入字母“i”和“π”作為標題行;然后在A2和A3單元格分別輸入0和1,接著選定A2和A3單元格后用“自動填充柄”沿A列向下拖即可迅速得出其它數字序號。在B2單元格輸入累加和初值0,在B3單元格輸入累加第1項后的結果式,該式應該等于前一個π值與第1項之和,注意:前一個π值應該用上一個單元格引用B2表示,而第1項的i值應該用單元格名字A3表示。因此,B3單元格輸入的公式是“=B2+(-l)∧(A3-l)*4/(2*A3-1)”,按回車鍵后即算出當前結果為4。然后用“自動填充柄”沿B列往下拖迅速復制公式,得出更多項被累加后的和值。如圖1所示(為了節省編幅,圖1中隱藏了第5?999行)。
3 連乘算法的Excel實現
連乘算法是求很多數據之乘積的方法,在計算機中是通過逐步乘以每個數據實現的。如求階乘n!=l×2×3×…×n。在Excel中可以用如下方法實現該算法:在第1行的A1和B1單元格分別輸入字母“n”和“n!”作為標題行;然后在A2和A3單元格分別輸入0和1,接著用“自動填充柄”沿A列縱向拖出其它數字序號。在B2單元格輸入連乘的初始值1;在B3單元格輸入乘了第1個數“1”后的結果表達式,該式應該等于上一個階乘值與第1個數“1”相乘;注意:上一個階乘值應該用上一個單元格引用B2表示,而第1個被乘的數應該用對應的單元格名字A3表示;因此,B3單元格輸入的公式是“=B2*A3”,按回車鍵后即算出當前結果為1。然后用“自動填充柄”沿B列縱向往下拖,即可得出各數所對應的階乘值。如圖2所示(為了節省版面,圖2中隱藏了第5?11行)。
4 遞推算法的Excel實現
例:猴子吃桃問題。小猴在一天摘了若干個桃子,當天吃掉一半多一個;第二天接著吃了剩下的桃子的一半多一個;以后每天都吃尚存桃子的一半零一個,到第7天早上要吃時只剩下一個了,問小猴那天共摘了多少個桃子?這是一個典型“遞推”問題,先從第7天桃子數推出第6天的桃子數,再從第6天的桃子數推出第5天的桃子數,……。設第n天的桃子數為X,第n-1天的桃子數為y,則有關系x=y/2-l,因此,y=2(x+l)。在Excel中可以用如下方法實現該算法:在第1行的A1和B1單元格分別輸入字母“第n天”和“桃子數”作為標題行;然后在A2到A8單元格分別輸入天數7到1。在B2單元格輸入第7天的桃子數“1”,在B3單元格輸入第6天桃子數的遞推計算公式“=2*(B2+1)”(由第7天的桃子數B2作為己知數),按回車鍵后即算出第6天桃子數為4。然后用自動填充法沿B列往下拖復制公式,即可得出各天對應的桃子數,發現第1天桃子數為190,如圖3所示。
5 分類統計算法的Excel實現
例如要對99個學生的成績分類統計各分數段的人數。如圖4所示,可將成績數據粘貼到A2?A100列中,然后分別在C2?C5單元格輸入圖4所示的COUNTIF函數公式,按回車鍵后即可求出結果。如果總人數發生變化,只要修改公式中“A100”這里的數字即可。
3 結語
本文通過挖掘Excel公式計算的強大功能,闡述了用Excel實現累加、連乘、遞推、分類統計這些常用算法的方法。這里需要重點掌握Excel公式的表示法,參數的單元格表示法,以及自動填充法等操作技巧。
參考文獻
[1]張志勇.Excel與算法實現[J].中小學電教,2007(07).
[2]宋云飛.Excel在一些數值算法中的應用[J].東北電力大學學報,2013(05).
[3]張辰陽.Excel在高中數學學習中的應用技巧[J].電子技術與軟件工程,2016(14).