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函数接收一个双精度浮点数(十进制数)作为参数,并返回其立方根。

Open Compiler
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,然后取指数来计算立方根。

Open Compiler
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

在这个例子中,我们将看到如何使用牛顿-拉夫森方法计算给定数字的立方根。

Open Compiler
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 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告