星期三, 十一月 18, 2015

华丽地转身

一个研究人员,倘若学问做不动,他便教学生如何做人。人生不得意的普通人则可做国师,天上地下便没有他不懂的了。

——忽然想到。

温良谦恭顺

中国的传统文化要求人们温良谦恭顺,实则要人作伪。就好比批评吧,倘若人家批评得对,你大抵需接受。倘若批评得不对,那么你还谦恭个啥事体。现实中多见的更是因批而恼者,可见恼之前的谦恭自然都是装出来的。

年长的国人往往更受不得批评,尤其受不得来自晚辈的。以我的观察,倘若有人年过四十而有主见者,他的见便不可易。因此大多也是成见。由此人不但不可以其老而受尊重,人年长反倒是一个可受鄙视的信号了。

传统文化的可恨之处不单要人作伪,更可恨的是以传统文化自居的常有先天的优越感,大约就是所谓的以其昏昏使人昭昭罢。

星期一, 十一月 16, 2015

如何为一场大赛公正抽签分组

上周末我组织了一场羽毛球比赛,比赛有将近 50 人报名,合计101场比赛。赛前为了公平起见,我想采用现场抽签以避免事前操纵比赛的嫌疑。为了准备这个抽签,我花了几个小时时间造了一个 Excel 表格。现场抽签的算法是这样的。Sheet2 中放了参赛选手,按项目分组。sheet3 中每个比赛场次的选手对应 Sheet2 中的一个具体 cell。这样一旦 sheet2 中的选手按抽签排序,具体 cell 中的名字改变,sheet3 中的具体场次的选手也会发生改变。

算法本身没问题,愿望也是美好的,然而真正具体应用时就出了大麻烦。这是由三个问题导致的:有选手缺席、迟到和抓错签。因此后面的比赛场次根本就无法进行。这样做的另外一个问题是只有安排者知道场次,选手只能干等,全程侯场,不能自主安排时间。这显然是由于我从来没有组织经验造成的。如此至少现场还应该有一台打印机,把比赛进程打印出来公示。

那么能否有简单的方法在报名结束时就做好公平的抽签呢?答案当然是肯定的。以下就是一个算法。
  1. 赛前公布若干随机数种子和分组抽签程序及使用方法。
  2. 抽签程序加密,hash,供下载。加密程序可以加两个小把戏,一是加盐,比如shuffle若干次,种子再加固定数等。另外文件也可以加一些盐,比如文件中可以加一个注释行,包含随机长度的随机字串。这样即使通用的算法或反复使用的程序,大家也不好通过 hash 码猜具体文件中是什么内容。
  3. 参赛选手按报名顺序公示。
  4. 登记报名者和提程序者需要是两个不同的人。
  5. 报名截止,投票选随机数种子。
  6. 运行程序,产生分组并公示。
由此参赛选手就可以在报名结束时了解进程。且分组按事先约定可验证,因而公平公正,童叟无欺。

星期二, 十一月 10, 2015

Jarlsberg 比赛回顾

Jarlsberg 比赛在挪威众多的羽毛球巡回赛中显得与众不同。其它比赛只管收报名费和组织赛事,其余的自己打理。即使赛事用球,其它赛事每场比赛往往只提供两个,多了便要自理。Jarlsberg 则不仅提供的比赛用球多,前三名还都有奖品。这主要是因为以当地为名的一个奶酪厂的赞助。每个级别的冠军奖品是好几公斤的奶酪,亚军是一公斤的奶酪,第三名是半公斤的奶酪。总之都是奶酪。挪威打羽毛球的不多,这样的奖品足以吸引各色选手来参赛。我参加的 C 组今年就有 31 个报名选手,且报名的无一缺席。其中还有好几个原先打 B 级比赛,为了能够拿到奶酪,纷纷降级参赛。这无形中增加了我这种水平选手的艰难程度。

果不其然,第一场比赛我就遇到了很大的麻烦。对手虽然看起来一般,但是下手感觉还是有些门道,不知不觉中我第一局就输掉了。我们这个级别的选手往往参差不齐。我作为一号种子,与和我水平差不多的选手根本输不起。之后我抖擞精神,费了吃奶的力气才把对手掀翻在地。小组中的第二个对手果然很弱,我两个 21:12 就把他打发掉了,总不至于让他输得太难看。值得一提的是,第二个对手刚来到我面前时还真把我吓了一跳。这位小哥长得高而匀称。这种身材非常适合打羽毛球。可惜他根本就是个新手,至少没受过多少正规训练。

小组赛之后的间歇我在看台上看见一个大个子,胸前斗大几个汉字——“奉上级指示”。

我觉得好玩,就问他是否知道这几个字的意思。他说不知道。我便解释给他听。再聊才知道,原来这小伙子原先在北京朝阳区住过四年。然后他从手机里面翻出一张照片。好家伙,真是乔丹灌篮,——吓(黑)老子一跳。照片中三个人,左一解杏芳,右手林丹,中间一个就是他。

四分之一决赛的对手是一个小孩,十六七的样子,打得中规中矩。可惜关键球把握不住,第一局 18:21 输给我。第二局虽然打得很费劲,我还是最后把握住机会,29:27 拿下。但大约下次见面我就不是他的对手了。

这场比赛之后便是漫长的等待。大约奶酪的确太有诱惑力,有一个打得还不错的伙计报了男单、男双、和混双,通通打进了半决赛。然后我就看到他打完了一个四分之一决赛立即进行另外一场半决赛。忙活得不轻。

另外一个半区的半决赛早就打完,胜出的不是旁人,正是“奉上级指示”的大个子。

三项全打的这位虽然水平不错,但似乎全部止步于半决赛,至少我没有放过他。但赢他也是比较艰苦,我和他的两局比赛也都是差两三分的样子。比赛之后已经晚上七点多了,这真是漫长的一天。我之后马不停蹄地接着决赛,“奉上级指示”的大个子已经等候多时了。

低水平选手总有这样或者那样的短项,与大个对手们比赛就几乎一直是我心头的痛。这位大个子身高恐怕超过1米90,我1米70的个头仅仅能够着他的肩膀头。大个子比赛时我倒是看了几眼。他的缺点则是移动慢,但他步伐大,与我们这种水平选手比赛脚步移动少。而且他回球比较准,打场地的四个角误差比较小。因此对手往往要比他消耗更多的体力。这样打的时间越长,对他就越有利。

决赛开始的前半段我还能沉住气,一直领先一两分。我的高远球和劈吊一直能把他压制住了。后来随着体力下降,我的回球质量也下降,慢慢地,我的耐心也没有了。结果第一局19:21负。值得一题的是,这个场地灯光很糟糕,尤其是中间场地,高球下落时灯光直射入眼。我因此丢了好几个球。这个场地的灯光,如大个子所言,似乎对他影响不大。

第二局大个子似乎找到门道,我频频失误。很快大个子11分领先进入暂停。我忍无可忍,要求换场地,反正球场上就剩我们两个人在打了。裁判问大个子,大个子说没问题,我想换就换。换过之后,我这才注意到大个子每次发球之前都要仔细端详我头顶的大灯在什么位置,然后就冲灯把球打过去。看得我心头火起,胸中一万头羊驼呼啸而过。真不知道他是在北京呆的四年学坏了还是洋鬼子就这么坏,但比赛没完就要坚持打。然而大势已去,第二局我只得了10分,结束了当天的比赛。