###### tags: `資訊科學教學法作業(2019)` # 實作報告二-立方根 ## 壹、四則運算求立方根原理 ### 假設求一數8的平方根有何種方法可求? **以實務面來說,若要最快速的算法,由電腦或計算機直接算根號最快,但這樣就無思考學習的歷程,因此引導學生由連乘進而了解十位逼近法的作法** * 由連乘法來看,2x2x2=8,因此8的立方根為2 ### 若要將此方法推到任一整數求立方根,是否也一樣? 例如求9的立方根,是否可輕易得到某數乘三次的結果為9? 嘗試用紙筆計算9的立方根 * 以MicroSoft的Excel來試算看看9的立方根逼近值 ### 十位逼近法 #### 方法一:由0開始相乘三次,每次+0.0001後再相乘,直到逼近9為止 ![](https://i.imgur.com/XTqhJNK.png) #### 方法二:分成整數跟小數部分,先整數部分每次+1逼近,再從分數部分每次+0.0001逼近到9 ![](https://i.imgur.com/WJLsl2X.png) #### 方法三:分成整數跟小數部分,小數再分位數,先整數部分每次+1逼近,再從分數每次加本身最小位數逼近,如小數後1位為+0.1、小數後2位為+0.01、小數後3位為+0.001、小數後4位為+0.0001 ![](https://i.imgur.com/VQr0rqo.png) ### 問題: 1.以上這三種方法是否可行? 2.運算上何種比較快速? **由數學的理論上這三種都符合十位逼近法,也能算出立方根的值,而在實務面上的運作上是否有差異?** 以下讓我們開始進入python程式驗證 ## 貳、進入Colab寫Python程式 #### 方法一:由0開始相乘三次,每次+0.0001後再相乘,直到逼近9為止 ![](https://i.imgur.com/T7MAxph.png) #### 方法二:分成整數跟小數部分,先整數部分每次+1逼近,再從分數部分每次+0.0001逼近到9 ![](https://i.imgur.com/2Zt4vY7.png) #### 方法三:分成整數跟小數部分,小數再分位數,先整數部分每次+1逼近,再從分數每次加本身最小位數逼近,如小數後1位為+0.1、小數後2位為+0.01、小數後3位為+0.001、小數後4位為+0.0001 ![](https://i.imgur.com/mmEgHKX.png) ### 參、實作結論 1.這三種方法是否可行? 都是可行的方法,輸出結果也相同 2.運算上何種比較快速? 以實際上運作,當輸入i(要被求立方根的值)小時,運作速度都很快正常;一但i值變大時,運作速度以方法一(由0每次+0.0001)最慢,方法三(分成整數跟小數部分,小數再分位數)最快。 ### 進階問題: 1.同學們,你認為方法三(分成整數跟小數部分,小數再分位數)為何在電腦運算中最快? 2.可否解釋理由? **可以由影響速度的重點運算次數來看,求一樣的立方根下:** 方法一:由0開始+0.0001,計算次數是最多的 方法二:整數部分計算速度快,但慢在小數點每次+0.0001 方法三:需要算的次數是最少的,因為除了整數外,小數點依照位數分別計算,因此運算是最快速的 ## 課程結束------