我需要编写一个基本的方案程序,可以找到列表的中位数,另一个是平均值。
这是我到目前为止所提出的:
平均:
(define (mean lst)
(if (null? lst) ()
(+ 1 (car lst) (mean (cdr lst))))
我知道我需要在某个地方划分我的长度,但不知道该怎么做。我的思考过程是将每个元素添加到列表的堆栈中,然后除以列表的长度?
平均:
我不知道从哪里开始为中位数。我知道我需要确定列表是否有奇数个元素甚至,所以要做到这一点我已经想出
(define (median lst)
(if (integer? (/ (length lst) 2) ;which is the one for even
我不知道是否需要另一个程序让我到列表中间?
答案 0 :(得分:1)
已经讨论了median
程序here。
计算mean
很简单,只需添加所有元素并除以列表的长度,唯一需要处理的特殊情况是列表为空时(因为这会导致除以零:长度为零!),返回一个指示此值的适当值。
到目前为止,你肯定应该知道如何添加列表中的所有元素,如果有疑问请与教师核实,但这是一个基本操作,它应该不是问题。