【发布时间】:2011-01-27 17:48:13
【问题描述】:
我需要执行一系列数学运算。函数的输入是n。
前两个运算是求和。使用 n.结果需要存储为变量以在以后的函数中使用。
例如。
main func(n)
func1 (n)
returns a1
func2 (n)
returns b1
func4
uses b1 to compute c1
etc....
我已经创建了所有分离的函数,但需要使用一个只接收 n 的主函数,以及一种全局存储变量以供以后函数使用的方法(无需更改它们)。这些是前两个功能。
(define (main n)
(define (a1func n)
(let* ((a1 0))
(let* ((i (- n 1)))
(if (= n 1) 0
(+(/ 1 i) (a1func(- n 1)))))))
(define (a2func n)
(let ((a2 0))
(let ((i (- n 1)))
(if (= n 1) 0
(+(/ 1 (expt i 2)) (a2func(- n 1)))))))
(define b1
(if (= n 1) 0
(/(+ n 1)(* 3(- n 1)))))
(define b2
(if (= n 1) 0
(/(* 2 (+ n 3 (expt n 2))) (*(- n 1)(* 9 n)))))
(define c1 (- b1 (/ 1 a1)))
(define c2 (+ (- b2 (/ (+ n 2) (* a1 n))) (/ a2 (expt a1 2))))
(define e1 (/ c1 a1))
(define e2 (/ c2 (+ (expt a1 2) a2)))
(list e1 e2))
【问题讨论】:
-
这个问题是stackoverflow.com/q/4801595/298282的改写延续
-
我觉得我在原文中没有正确解释自己。我还发布了我的整个代码(而不是其中的一个 sn-p)来准确展示我正在尝试做的事情。
标签: scheme