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函数或牛顿-拉夫森方法来计算数字的立方根。
广告