# 如何用python解立方根? E1060015 林易增 前言:若某正數x的三次方為a,則我們稱x為a的立方根。當我們只得知一個正數a,要尋找a的立方根x,需要從x=0開始找起,直到找到x的三次方最接近正數a的數,即為找到立方根。 運用到的程式語法:加、減、乘、while迴圈、float、print。 ==利用python的基本做法:== 1.先設定輸入一個正數a 2.立方根x初始值設為0開始尋找 3.利用while迴圈,讓立方根x的三次方(立方根乘以三次),若是小於正數a,則將立方根x加0.0001,再乘三次方,直到立方根x的三次方大於正數a,即停止。 4.此時輸出的x即為正數a的立方根。 程式碼如下: ```python= #解非負數立方根 a=float(input('請輸入一個正數:')) x=0.0 while(x*x*x<=a): x=x+0.0001 x=x-0.0001 print(f'{a}的立方根為:{"%.4f"%x}') ``` 輸入正數a=101, 可得到立方根x=4.6570 ==是否有更好的做法呢?== 利用上述的基本的做法,可以發現要執行的次數非常多。讓我們在程式碼中加入一個變數k來計算執行次數,如下: ```python= #解非負立方根 a=float(input('請輸入一個正數:')) x=0.0 k=0 #k計算執行次數 while(x*x*x<=a): x=x+0.0001 k=k+1 x=x-0.0001 print(f'{a}的立方根為:{"%.4f"%x}') print(f'總共執行{k}次') ``` 輸入同樣的正數a=101,得到立方根x=4.6570,而==執行次數達到46571次==。 :::info 然而,若是我們重新修改程式,先從整數開始逼近,確定最接近的整數立方根後,再加入小數點第一位0.1,直到最接近的小數點第一位後,再加入小數點第二位0.01,以此類推... ::: 程式碼下: ```python= #解非負立方根(用整數逼近) a=float(input('請輸入一個正數:')) x=0.0 k=0 #k計算執行次數 while(x*x*x<=a): x=x+1 k=k+1 x=x-1 k=k+1 while(x*x*x<=a): x=x+0.1 k=k+1 x=x-0.1 k=k+1 while(x*x*x<=a): x=x+0.01 k=k+1 x=x-0.01 k=k+1 while(x*x*x<=a): x=x+0.001 k=k+1 x=x-0.001 k=k+1 while(x*x*x<=a): x=x+0.0001 k=k+1 x=x-0.0001 k=k+1 print(f'{a}的立方根為:{"%.4f"%x}') print(f'總共執行{k}次') ``` 同樣輸入正數a=101, 可得到立方根x=4.6570,但==執行次數僅需32次==,遠少於基本做法,而有更高的效率。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up