You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:编写Scheme语言实现几何级数的函数(初学者语法困惑)

实现几何级数的Scheme函数

几何级数的典型形式是计算首项为a、公比为r、共n项的和(即:(a + ar + ar^2 + ... + ar^{n-1}))。下面提供两种实用实现方式:

递归实现

递归版本逻辑直观,贴合Scheme函数式编程的核心风格:

(define (geometric-series a r n)
  (cond
    ((= n 0) 0)          ; 0项的和为0
    ((= n 1) a)          ; 1项的和等于首项本身
    (else (+ a (* r (geometric-series a r (- n 1)))))))

调用示例

(geometric-series 2 3 4) ; 输出80,对应2 + 6 + 18 + 54
(geometric-series 5 1 3) ; 输出15,对应5 + 5 + 5

尾递归实现

尾递归版本利用Scheme的尾递归优化特性,适合项数较多的计算场景,避免栈溢出问题:

(define (geometric-series-tail a r n)
  (define (iter current-term remaining sum)
    (if (= remaining 0)
        sum
        (iter (* current-term r) (- remaining 1) (+ sum current-term))))
  (iter a n 0))

调用示例

(geometric-series-tail 2 3 4) ; 同样输出80
(geometric-series-tail 1 0.5 5) ; 输出1.9375,对应1 + 0.5 + 0.25 + 0.125 + 0.0625

内容的提问来源于stack exchange,提问作者nick_ort1z

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 05:05:17