Haskell多项式的求值
我有一个函数(Haskell多项式的求值,haskell,Haskell,我有一个函数(eval)来计算多项式 eval coeffs value = ....... coefs是系数列表 value在数学中代表x 计算 3x^2+2x+1,x=20 coefs按相反顺序存储 当我像上面那样输入系数时,它是这样存储的[1,2,3] 像这样工作的程序和最后一部分是错误的(多项式的值): 这是我的密码 getCoeff 0 ls = do return ls getCoeff n ls = do putStr "What is the x^"
eval
)来计算多项式
eval coeffs value = .......
coefs
是系数列表
value
在数学中代表x
计算
3x^2+2x+1,x=20
coefs
按相反顺序存储
当我像上面那样输入系数时,它是这样存储的[1,2,3]
像这样工作的程序和最后一部分是错误的(多项式的值):
这是我的密码
getCoeff 0 ls = do return ls
getCoeff n ls = do putStr "What is the x^"
putStr (show(n-1))
putStr " coefficient: "
v <- getLine
w <- getCoeff (n-1) ((read v :: Float):ls)
return w
evalpoly = do putStr "What is the degree of polynomial: "
v <- getLine
l <- (getCoeff ((read v :: Int)+1) [])
putStr "What value do you want to evaluate at: "
x <- getLine
putStr "The value of the polynomial is: "
putStr (show (polyEvaluate (l) (read x :: Float)))
putStr "\n"
eval [] x = 0.0
eval (l) x =
如何用系数和x值计算多项式?一些提示
你可以很容易地写出一系列的幂
powers n = iterate (*n) 1
> take 10 $ powers 2
[1,2,4,8,16,32,64,128,256,512]
把这个和你的系数结合起来
> zip [1,2,3] $ powers 20
[(1,1),(2,20),(3,400)]
您必须考虑如何将其更改为对的乘积之和(使用zipWith)您的问题可能需要一些工作,看起来您的格式已关闭,您的措辞也不太清楚。你是否已经有了一个函数
eval
,或者你的任务是编写一个函数?我想这是你的家庭作业/练习,所以你应该先告诉我们你尝试了什么-你甚至已经设置了表示吗?给我们看一些代码:D可能重复的(注意链接会破坏完整的家庭作业)我如何使用系数和值列表制作评估函数?多评估的定义是什么?
> zip [1,2,3] $ powers 20
[(1,1),(2,20),(3,400)]