如何找到方案中列表的中位数
我是计划的新手,我正在使用 Dr.Racket 来尝试找到列表的中位数。
例如,(median 2 1 3)
应返回 2
,(median 1 1 5 5 2 3)
应返回 2.5< /代码>。
我正在使用 R6RS 方案规范,并且可以使用 get-line
。
这是我到目前为止所得到的:
#!r6rs
(import (rnrs))
(define (median-interactive lst)
(display "Enter input:")
(let ((input (get-line (current-input-port))))
(list-sort < lst)))
任何人都可以帮助我吗?
I am new to Scheme and I am using Dr.Racket to try to find the median of the list.
For example, (median 2 1 3)
should return 2
and (median 1 1 5 5 2 3)
should return 2.5
.
I am using the R6RS scheme specification and am allowed to use get-line
.
Here is what I have so far:
#!r6rs
(import (rnrs))
(define (median-interactive lst)
(display "Enter input:")
(let ((input (get-line (current-input-port))))
(list-sort < lst)))
Can anyone help me?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
第一件事:“median-interactive”不应该称为“median”吗?
第二件事:我强烈建议你完全独立于“中位数交互”来开发“中位数”。
第三件事:你能举例说明中位数的作用吗?具体来说,如何调用“中位数”以及它应该返回什么的具体示例?
第四件事:我猜这是作业?
Thing one: shouldn't 'median-interactive' call 'median'?
Thing two: I strongly urge you to develop 'median' totally independently of 'median-interactive'.
Thing three: can you provide examples of what median does? Specifically, concrete examples of how you might call 'median' and what it should return?
Thing four: I'm guessing this is homework?
这是一个简单的实现。由于中位数只是一半值高于一半值低于的点,因此您可以对列表进行排序并找到中间点。根据元素数量是奇数还是偶数,您可以取排序列表中的中间点(奇数)或两个中间点的平均值(偶数)
如果这是家庭作业,那么这样一个令人讨厌的版本可能会给您带来“ D',但它确实有效。
Here is a simplistic implementation. Since the median is just the point at which half the values are above and half are below, you can sort the list and find the middle point. Depending on whether the number of elements is odd or even you can either take the middle point in the sorted list (odd) or the average of the two middle points (even)
If this is homework, such a nasty version might get you a 'D', but it does work.