Haskell程序 计算给定数的立方根

Haskell程序 计算给定数的立方根

这篇Haskell文章将帮助我们计算给定数字的立方根。一个数字的立方根是一个值,当它乘以自己的三倍时,等于原来的数字。例如,8的立方根是2,因为2 x 2 x 2 = 8。

在数学上,数字x的立方根表示为∛x。

算法

  • 第1步 – 定义一个用户定义的函数,并将其命名为cubeRoot

  • 第2步 – 程序的执行将从主函数开始。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函数或Newton-Raphson方法来计算。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程