Haskell程式計算給定數字的立方根
這篇Haskell文章將幫助我們計算給定數字的立方根。一個數的立方根是一個值,當它自身相乘三次時,等於原來的數字。例如,8的立方根是2,因為2 x 2 x 2 = 8。
在數學中,數字x的立方根表示為∛x。
演算法
步驟1 − 定義一個使用者自定義函式,並將其命名為cubeRoot
步驟2 − 程式執行將從main函式開始。main()函式控制整個程式。它寫成main = do。它接收一個整數,需要計算其立方根。然後它將透過傳遞一個數字並列印結果來測試cubeRoot函式。
步驟3 − 命名為“num”的變數被初始化。它將儲存一個需要計算立方根的整數。
步驟4 − 透過呼叫cubeRoot函式並在'print'函式中列印結果,將計算出的立方根列印到控制檯。
示例1
在這個例子中,cubeRoot函式接收一個雙精度浮點數(十進位制數)作為引數,並返回其立方根。
import Data.Fixed cubeRoot :: Double -> Double cubeRoot x = (cuberoot x) / 1 where cuberoot = (** (1/3)) main :: IO () main = do let num = 8 print (cubeRoot num)
輸出
2.0
示例2
在這個例子中,exp函式用於透過取輸入數字的自然對數、將其除以3,然後取指數來計算立方根。
import Data.Fixed import Text.Printf cubeRoot :: Double -> Double cubeRoot x = exp (log x / 3) main :: IO () main = do let num = 8 printf "Cuberoot of %f is " num print (cubeRoot num)
輸出
Cuberoot of 8.0 is 2.0
示例3
在這個例子中,我們將看到如何使用牛頓-拉夫森方法計算給定數字的立方根。
cubeRoot :: Double -> Double cubeRoot x = cubeRootNewtonRaphson x 1 cubeRootNewtonRaphson :: Double -> Double -> Double cubeRootNewtonRaphson x guess = if abs (guess^3 - x) < 0.00001 then guess else cubeRootNewtonRaphson x (guess - (guess^3 - x) / (3 * guess^2)) main :: IO () main = do let num = 8 print (cubeRoot num)
輸出
2.0000000000120624
結論
在Haskell中,可以使用cuberoot函式、exp函式或牛頓-拉夫森方法來計算數字的立方根。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP