罗塞塔石挑战的目标是用尽可能多的语言编写解决方案。炫耀你的编程多种语言!
挑战
您的挑战是以尽可能多的编程语言实现一个程序,该程序将输入数字列表并输出数据的方框图。方框图将显示数据中的四分位数和异常值,甚至有一个比例尺。您可以使用您的语言所拥有的任何类型的标准库函数,因为这主要是语言展示。
?
箱形图是一种绘制数据的方法。一个盒子的情节有一些基本的特征。第一个特性是一个方框,两边都位于数据的第一和第三四分位元。在方框图的中心有一条线,它给出了正中线。在方框图的两端,都有“胡须”,帮助显示数据的差异。晶须从盒子延伸到数据集中的最小和最大点,不包括离群点。离群点是作为个别点绘制的。
首先,取数据的中位数。然后,取所有严格小于中位数的数据点,计算该集合的中值,使其成为第一个四分位数(Q1)。取所有严格大于中位数的数据点,计算该集合的中值,使其成为第三个四分位数(Q3)。查找R = 1.5*(Q3 - Q1)的值。任何减去Q1 - R的数字,这都是离群值。任何大于Q3 + R的数字都是离群值。取不属于异常值的所有数据点的集合,该集合的最小值和最大值决定了两个晶须的末端。
输入将以n=开头,后面跟着一个数字。然后将有n数字,每一行一个。所有的数字都是0到63的整数,包括在内。
n=8
29
1
22
18
12
16
16
22输出将是方块情节的再现。绘制该情节的一种可能方法是在ASCII中绘制它。您可以用ASCII以外的多种方式呈现框图,但是主要的要求是绘制得足够大,这样就可以知道重要功能的确切位置。方格图应该有一个比例,大约由5-10个等距的数字组成.下面是上述数据的一个示例:
+--+----+
| | |
X +-+ | +------+
| | |
+--+----+
0 0 1 1 2 2 3
0 5 0 5 0 5 0至于一个客观的获胜标准,这里是:每种语言都是一个独立的竞赛,谁能写出最短的条目,但总体的赢家将是谁赢得了这些子竞赛中的大多数。这意味着一个用许多不寻常的语言回答问题的人可以获得优势。代码-当一种语言中有不止一种解决方案时,高尔夫主要是一种平局者:程序最短的人因该语言而获得学分。
你的程序可以用2013年4月11日之前的任何语言编写。我还必须依靠社区来验证用一些不常见/深奥的语言编写的一些响应,因为我不太可能对它们进行测试。
本节将定期更新,以显示语言的数量和谁在每一种语言中处于领先地位。
发布于 2013-04-12 06:48:04
当然,R是一种用于统计的语言,它附带了一个函数boxplot (这里需要一个包装器来容纳输入样式):
f=function(x)boxplot(scan(x,sk=1))用法:给定一个包含以下内容的文件input1.txt:
n=10
29
1
22
19
9
13
15
22
63
2然后f("input1.txt")生成:

这是我第一次在朱莉娅的功能,所以我向朱莉娅的粉丝道歉,如果这是写得不好。
function g(f)
a=int(split(readall(open(f)),'\n')[2:])
b,c,d=int(quantile(a,[.25,.5,.75]))
w=1.5*(d-b)
o=a[a.<b-w]
O=a[a.>d+w]
t=int(b-w>0?b-w:0)
u=int(d+w<63?d+w:63)
S=s=""
if !isempty(o)
for i in 1:length(o)
s=s*lpad('x',[0,o][i+1]-[0,o][i]-1,' ')
end
end
if !isempty(O)
for i in 1:length(O)
S=S*lpad('x',[0,O][i+1]-[0,O][i]-u-1,' ')
end
end
x="0"
for i in 9:9:63
x=x*lpad(string(i),i-(i-9)," ")
end
v=isempty(o)?b-1:b-o[length(o)]-1
print(x*"\n"*lpad('+'*'-'^(d-b-1)*'+',d,' ')*'\n'*s*lpad('-'^(b-t-1),v,' ')*'|'*lpad('|',c-b,' ')*' '^(d-c-1)*'|'*'-'^(u-d)*S*'\n'*lpad('+'*'-'^(d-b-1)*'+',d,' '))
end用法:
g("input1.txt")
0 9 18 27 36 45 54 63
+-----------+
---------| | |------------------ x
+-----------+发布于 2013-04-12 09:08:14
import matplotlib.pylab as p
p.boxplot(map(input,['']*int(raw_input()[2:])))
p.show()
发布于 2013-04-14 09:23:38
BoxWhiskerChart[Input/@x~Array~FromDigits@StringTake[InputString[],-1]]
https://codegolf.stackexchange.com/questions/11250
复制相似问题