gpt4 book ai didi

algorithm - 方案 - 求从 -n 到 n 的分数之和

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:51:39 24 4
gpt4 key购买 nike

所以我必须创建一个名为 frac-sum 的函数,它取从 -n 到 n 的两个函数的分数之和,所以 f(n)/g(n) 作为分数和从 -n 到 n 的和所以 f(-n)/g(-n) + ... f(n)/g(n)

它需要三个形式参数 f g 和 n。

到目前为止,我有这个应该可以工作但最终进入递归循环,这意味着我的基本情况有问题:

    (define (negn n) (- (* n -1) 1))
(negn 1)

(define (frac-sum f g n)
(cond ((= n (negn n)) 0)
((= (g n) 0) (+ 0 (frac-sum f g (- n 1))))
((+ (/ (f n) (g n)) (frac-sum f g (- n 1))))))

我用它来测试应该输出两个:

(分数和 (lambda (x) (- x 1)) (lambda(x) x) 1)

最佳答案

不存在满足语句n = (n * -1) - 1 的整数n。这是函数无限循环的原因。

由于您要遍历 [-n, n] 范围,您可以在函数中定义两个值,递归地递增下限或递减上限。然后,您可以通过测试下限是否等于上限来终止该函数。

(define (frac-sum f g n)
(let loop ((neg (- n)) (pos n) (acc 0))
(cond
((= neg pos) acc)
((zero? (g neg))
(loop (add1 neg) pos acc))
(else
(loop (add1 neg) pos (+ (/ (f neg) (g neg)) acc))))))

例如:

(frac-sum (lambda (x) (- x 1)) (lambda (x) x) 1)
=> 2

关于algorithm - 方案 - 求从 -n 到 n 的分数之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48999718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com