首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >方案中的Leibniz公式

方案中的Leibniz公式
EN

Stack Overflow用户
提问于 2016-09-19 09:30:22
回答 1查看 662关注 0票数 3

我花了一些时间在这里和整个互联网上查看有关这个问题的问题,但我真的找不到任何对我有意义的东西。基本上,我需要帮助在方案中实现一个函数,当你给它一个值k时,它会计算莱布尼茨公式的值。你输入的值让函数知道它应该计算级数中的多少值。这就是我到目前为止所拥有的,我不确定我需要用什么方式来编写这个程序才能让它工作。谢谢!

代码语言:javascript
运行
复制
(define (fin-alt-series k)
  (cond ((= k 1)4)
        ((> k 1)(+ (/ (expt -1 k) (+(* 2.0 k) 1.0)) (fin-alt-series (- k 1.0))))))
EN

回答 1

Stack Overflow用户

发布于 2016-09-19 10:44:01

基本大小写不正确。我们可以稍微清理一下代码:

代码语言:javascript
运行
复制
(define (fin-alt-series k)
  (cond ((= k 0) 1)
        (else
         (+ (/ (expt -1.0 k)
               (+ (* 2 k) 1))
            (fin-alt-series (- k 1))))))

更好的是,我们可以重写过程来使用尾递归,这样会更快:

代码语言:javascript
运行
复制
(define (fin-alt-series k)
  (let loop ((k k) (sum 0))
    (if (< k 0)
        sum
        (loop (- k 1)
              (+ sum (/ (expt -1.0 k) (+ (* 2 k) 1)))))))

例如:

代码语言:javascript
运行
复制
(fin-alt-series 1000000)
=> 0.7853984133971936

(/ pi 4)
=> 0.7853981633974483
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39564210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档