Scheme / Drracket Euler Number

时间:2018-03-13 16:29:55

标签: math functional-programming scheme racket eulers-number

我正在尝试在drracket aka Scheme中实现Euler编号。 我通过搜索功能看到了一个解决方案,但它很复杂。

 (define (fakultät n)
  (cond
    [(= n 0) 0]
    [(= n 1) 1]
    [else (* (fakultät (- n 1)) n)]))
(define (e n)
  (cond
    [(= n 0) 1]
    [(= n 1) 2.72]
    [else (+ (/ 1 (fakultät n )) (e(- n 1)))]))

首先我定义了一个阶乘,然后我定义了e函数。 结果某种程度上是不正确的

1 个答案:

答案 0 :(得分:3)

Sidenote 您应该在问题中提供更多详细信息,例如输入和实际输出(通常是预期的输出,但在这种情况下,它有点像清除)

我认为错误在于

[(= n 1) 2.72]

我不知道你从哪里得到这条线。我唯一的猜测是,这是一些基于某种近似方法的其他实现的遗留物。 e约为2.718...,因此仅2.72大于正确答案,您将再添加一些1/n!

如果删除该行,则代码似乎正常,因为您可以看到here