用Paw++看NOIP2009

昨天了解到一个极其NB的软件叫做Paw++(全称是Physics Analysis Workstation,详见http://en.wikipedia.org/wiki/Physics_Analysis_Workstationhttp://wwwasd.web.cern.ch/wwwasd/paw/)。这是CERN从1986年开始开发的一个超强的统计、绘图软件。昨天在Ubuntu软件中心看到了它,还是GPL的,记得原来我爸也用过,于是将它安上试试。

需要找一些数据来做实验,于是选取了NOIP2009的得分情况(这个东西是高能物理用的,干这个有点大材小用:) )。Paw有一个自己的脚本语言,十分简单。记得处理数据的命令好像是NTUPLE,于是先

help nt

为什么不是help NTUPLE?因为paw很强的一点就是如果没有歧义,只要输入命令的前几个字母就OK了。
然后Paw弹出一个小窗口写出了NTUPLE的命令列表。

古老的Motif界面,就像ddd一样。。。

古老的Motif界面,就像ddd一样。。。

我们还是先获得数据吧。先上 http://www.student.gov.cn/bjnoi/tzgg/269720.shtml 把那个成绩表粘到 OpenOffice.org 电子表格 中,然后去掉表头、姓名一栏和变动原因一栏,编号一栏去掉“BJ-”,只保留编号数字。然后把这个ods导出成csv,命名为NOIP.csv放在家目录下面。

然后转到Paw,输入nt/cr 10 NOIP 6 ! ! id tmark son trade spy sudokunt/crNTUPLE/CREATE的简写,要是不太明白可以看看help nt/cr。接下来nt/read 10 NOIP.csv,程序返回223 events have been read,然后nt/scan 10,bingo!数据已经全部输进来了。接下来就是画图了。

开始画图。先nt/pl 10.tmark。得0分的确实不少啊!

总分的分布。

总分的分布。nt/pl 10.tmark

这时我们想看看总分和sudoku一题得分是否有很大相关,输入nt/pl 10.tmark%sudoku。Paw输出了一个散点图。我们再用hi/pl 1000000(1000000是系统分配的图的编号)详细看一下。顺便试一下hi/pl 1000000 boxhi/pl 1000000 legohi/pl 1000000 surf

散点图。

散点图。hi/pl 1000000


方块图,哪里人多一目了然。

方块图,哪里人多一目了然。hi/pl 1000000 box


立体的,哈哈。

立体的,哈哈。hi/pl 1000000 lego


还是立体的。

还是立体的。hi/pl 1000000 surf

通过这几幅图,我们可以看出,sudoku和tmark数独一题是得到高分的钥匙。

如果有兴趣,可以再看看tmark vs. spy,可以看出,spy得到90或100的人才有可能得高分。还可以再乱看看其他好玩的图形。

哈哈,玩完了,不错吧。Paw++就是这么个强悍的东西,今天主要是玩玩,可能连它1/100的功能都没有用上。追求更加强大功能的朋友可以看看同是欧核中心出的叫做ROOT的软件,也可以在Ubuntu的源里面找到。它是用来替代Paw的,功能更强,使用C/C++语法,我大概看了一下,使用起来比Paw稍微复杂一些。

最后说一声,这个东西似乎只有Linux版。