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函式或牛頓-拉夫森方法來計算數字的立方根。

更新於:2023年3月1日

403 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.